Загрузка файла в Codeigniter

Это мой код файлов uploadinfg в приложении codeigniter

function upload_logo(){ $ex=$_FILES['uploadfile']['name']; $epld=explode('.',$ex); $filename=date("mdyHis").".".$epld[1]; $userfile_size=$_FILES['uploadfile']['size']; $imggtype=$_FILES['uploadfile']['type']; if(move_uploaded_file($_FILES['uploadfile']['tmp_name'],"./uploads/".$filename)) { echo $filename; } } 

Здесь uploadfile – это имя поля файла. И у меня есть папка с именем, загружаемым в корневую папку. Когда я загружаю файл, я получил ошибки. Это работает на нашем сервере, но не работает на сервере клиента.

 A PHP Error was encountered Severity: Warning Message: move_uploaded_file(./uploads/112911224341.docx) [function.move-uploaded-file]: failed to open stream: Permission denied Filename: controllers/pms.php Line Number: 156 A PHP Error was encountered Severity: Warning Message: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpvhzCkw' to './uploads/112911224341.docx' Filename: controllers/pms.php Line Number: 156 

Как я могу это решить?

В сообщении об ошибке указано, что это проблема с разрешениями. Убедитесь, что у вас есть правильные разрешения, установленные в папке uploads. Из документации :

Вам понадобится папка назначения для загруженных изображений. Создайте папку в корне вашей установки CodeIgniter с именем uploads и установите права доступа к файлу 777.

Эта ошибка возникает по двум причинам.

  1. Разрешение папки и недопустимой группы и пользователя.
  2. Неправильный путь.

Разрешение и владелец папки:

Если вы находитесь в Linux. Откройте терминал, введите эту команду. Это изменит владельца папки.

 $ cd project_path && sudo chown -R www-data:www-data picture_folder/ 

Введите эту команду, чтобы изменить разрешение папки.

 $ sudo chmod -R 777 picture_folder/ 

note Примечание. Используйте команду man для получения дополнительной информации об этих командах.

 $ man chmod OR man chown 

Путь к папке.

В кодеигнитре выполняется корневой файл index.php. Это отвечает за все виды деятельности. Поэтому не используйте base_url () для корневого пути. Вместо. Просто укажите имя корневой папки. как

Приложение CI ->

-заявление

-системы

-гид пользователя

-index.php

-picture_folder

  $target_directory="picture_folder/sub_folder"; 

Если UBUNTU OS, затем перейдите в ту папку, в которую вы загружаете / сохраняете «Загруженные файлы», щелкните правой кнопкой мыши по этой папке -> Свойства -> Разрешения Затем измените все «Доступ» для создания и удаления файлов.

Если это также не происходит, перейдите в его родительскую папку и выполните тот же шаг. Я уверен, вы не получите эту проблему. Потому что, сейчас, я получил эту ошибку. и, я решил, как этот путь только.