2012-06-04 2 views
0

У меня есть контроллер с методом «do_upload», который должен загрузить изображение/IMG, но вместо этого я получаю следующее сообщение об ошибке:Почему путь загрузки недействителен? (Codeigniter)

http://localhost/img/ 

путь Выгрузка не появляется, чтобы быть действительным.

Это метод класса загрузки.

public function do_upload(){ 

     $config['upload_path']= "http://localhost/img/"; 
     $config['allowed_types']= 'gif|jpg|png'; 
     $config['max_size']='100'; 
     $config['max_width']='1024'; 
     $config['max_height']='768'; 


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

     if(!$this->upload->do_upload()){ 
      $errors=array('errors'=>$this->upload->display_errors()); 
      echo $config['upload_path']; 
      $this->load->view('error',$errors); 
     } 

     else{ 

      $data=array('upload_data'=> $this->upload->data()); 

      $this->load->view('admin/admin'); 
     } 
    } 

Права доступа к файлам устанавливаются в следующем (проверить это работает!):

drwxrwxrwx

Однако, если я направляю свой браузер http://localhost/img/ я могу просмотреть содержимое из поэтому я не думаю, что это проблема с разрешением. Есть ли что-то, что я делаю неправильно?

ответ

3

Вы не можете загрузить URL-адрес. $config['upload_path'] должен быть путь к расположению файловой системы на вашем сервере.

4

Как сказал lanzz, попробуйте

$config['upload_path']= APPPATH; 

или

$config['upload_path']= APPPATH.'img/'; 

Управление файлами и браузер адрес не редко совпадают, и никогда с локального хоста.

Редактировать: См. my other answer для возможных путей. В большинстве случаев вы можете использовать FCPATH.

1

Я столкнулся с той же проблемой в течение нескольких часов.

Проблема заключается в пути к файлу, указанном в config. Я изменил его на абсолютный путь вручную. Я работал в WAMP. Мой каталог проекта «РМП» Когда я использовал путь конфигурационного файла, как,

$_SERVER['DOCUMENT_ROOT'].'rmp/uploads/'; 

Все работает отлично. Не знаю, в чем проблема. Но это решило мое решение. Приветствия !!! :)

РЕШЕНИЕ 2: Я немного поработал и обнаружил, что CI ориентирован на папку проекта по умолчанию. Так что если вы Img в качестве имени папки загрузки просто убедитесь, что он находится в корне CodeIgniter параллельно приложения, системы, ..

Мол, ROOT/yourcodeigniterproject/img

В этом случае просто дать 'img/' в качестве пути загрузки. Работает отлично.

0

Старый вопрос, но никто не указал, что папка img должна быть указана в файле htaccess. В зависимости от того, как она выглядит (код .htaccess), если вы используете CI страницу user_guide URL предложил один, после robots.txt добавить devider трубы и IMG, как:

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt|img) 
RewriteRule ^(.*)$ /index.php/$1 [L] 
Смежные вопросы