Кодовое изображение загрузки изображения - путь загрузки не является действительным - PullRequest
4 голосов
/ 14 ноября 2011

У меня проблемы с загрузкой изображения с использованием библиотеки загрузки codeigniter, я получаю сообщение об ошибке,

Путь загрузки не соответствует действительности.

Путь к файлу, который я тоже пытаюсь загрузить, выглядит следующим образом:

$config['upload_path'] = './media/images/site';

, и когда я ставлю точку,

die(var_dump(is_dir($config['upload_path'])));

я получаю следующее возвращаемое

bool (true)

Папка также доступна для записи (777), поэтому я не уверен, где я ошибаюсь, ниже указан мой код загрузки,

$config['upload_path'] = './media/images/site';
        //die(realpath($config['upload_path']));
        //die(var_dump(is_dir($config['upload_path'])));  
        $config['allowed_types'] = 'gif|jpg|png|jpeg';
        $config['max_size'] = '1500';
        $config['max_width']  = '390';
        $config['max_height']  = '269';

        $this->load->library('upload',$config);
        if ( ! $this->upload->do_upload() && $_FILES['userfile']['error'] != 4)
        {
            $data['error'] = $this->upload->display_errors();
            $this->template->build('/admin/pages/about_us', $data);
        }
        else
        {
            $image = $this->upload->data();
            if(empty($image['file_name'])) {
                $image['file_name'] = $this->formbuilder->defaults['page_image'];
            }
            $page = array(
                //'page_title' => $this->input->post('page_title'),
                //'page_slug' => $this->input->post('page_slug'),
                'page_content' => $this->input->post('page_content'),
                'page_image' => $image['file_name'],
                'date_created' => date("Y-m-d h:i:s"),
                'created_by' => 1
            );

            if($this->pages_model->insert($this->security->xss_clean($page)))
            {
                redirect('/admin/dashboard');
            }
        }

Я не вижу ничего очевидного, что могло бы помешать загрузке файла, ниже приведена структура папок моего проекта

/application
/system 
index.php
.htaccess
/media
    /images
        /site
        /admin
    /css
    /js

Если кто-то может пролить свет на мою проблему, которая быбыть великим.

РЕДАКТИРОВАТЬ ДЛЯ ПЕТУЛЕНТНОГО DOWNVOTER

Что могло бы вызвать эту проблему?

(Есть вопрос, как будто это было недостаточно очевидно в любом случае)

Ответы [ 3 ]

8 голосов
/ 14 ноября 2011

Попробуйте добавить эту строку перед строкой загрузки библиотеки:

 // Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class:
    $this->upload->initialize($config);

Не забудьте добавить эту строку в шаблон:

<?php echo form_open_multipart('upload/do_upload');?>
0 голосов
/ 06 декабря 2017

Попробуйте этот код в вашем контроллере

$config['upload_path'] = 'images'; //name of the uploading folder
$config['allowed_types'] = 'jpeg|png|jpg'; 

$this->load->library('upload', $config);
$this->upload->initialize($config);

if (!$this->upload->do_upload())
 {
  echo $this->upload->display_errors();
  exit;
 }
else
 {
  $upload_data = $this->upload->data();
 } 
0 голосов
/ 14 ноября 2011

Ваша проблема, по-видимому, возникает в методе validate_upload_path system/libraries/Upload.php

Этот метод выполняет всевозможные трюки, чтобы разобрать ваш путь загрузки в полный путь, поэтому я бы предложил вставлять дамп var перед каждой строкой так: $this->set_error('upload_no_filepath'); чтобы определить, где он идет не так, а затем откат назад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...