Загрузка файлов php: не удалось получить сообщение об ошибке

Я пытаюсь загрузить файлы через функцию PHP move_uploaded_file, и это то, что у меня пока есть:

if (move_uploaded_file($file["tmp_name"], iconv("UTF-8","big5",$target_file))) {
    return true;
} 
else {
    echo "Not uploaded because of error #".$file["error"];
    exit(0);
    return false;
}

Что касается $target_file, это место, куда я хотел бы загрузить свои файлы, в настоящее время это stu_feedback / 105502504 / feedback_20180910.pdf. Тем не менее, все файлы не могут быть загружены, что, очевидно, относится к части еще. Но когда я хотел повторить сообщение об ошибке, он показывает только 0.

Я использую Filezilla Client. Я тестировал на своем локальном хосте, и он мог правильно загружать файлы. Кто-нибудь знает, что произошло на самом деле?

Как я понял, на вашем локальном хосте скрипт работает, а на ваш хост не выгружается? Вы проверяли права на запись? (chmod)

AnTrakS 10.09.2018 10:36

где хранить $file["error"]?

Bhargav Chudasama 10.09.2018 10:36
$file['error'] будет показывать только те ошибки, которые произошли при загрузке на сервер, а не при переходе из tmp в целевую папку.
Jeff 10.09.2018 10:38

@ D.Dimitrov Поскольку я выполняю удаленную работу, где мне набрать chmod, чтобы проверить разрешение на перемещение файла в папку? :(

Lykas 10.09.2018 10:53

sudo chmod 755 -R / folder, я бы не рекомендовал вам устанавливать разрешения 777.

AnTrakS 10.09.2018 11:03

@ D.Dimitrov Я только что обнаружил, что папка, в которой я планирую хранить вещи, является каталогом, приводит ли это к проблеме (невозможно загрузить)?

Lykas 10.09.2018 11:40

Вы проверяли права доступа к целевой папке / каталогу для загрузки?

AnTrakS 10.09.2018 12:50

@ D.Dimitrov Это работает как по волшебству! Кажется проблема с разрешением. Большое спасибо за ответ!

Lykas 10.09.2018 17:39
0
8
91
1

Ответы 1

Я вижу некоторые проблемы по этой части:

  1. Добавьте enctype к форме <form enctype="multipart/form-data">;
  2. Убедитесь, что папка, в которую вы хотите переместить файлы, имеет разрешения (chmod -R / имя_папки 777)

  3. Попробуйте ввести код, например:

    try{
        if (move_uploaded_file($file["tmp_name"], iconv("UTF- 8","big5",$target_file))) {
            return true;
        } 
        else {
          echo "Not uploaded because of error #".$file["error"];
          //exit(0);
          return false;
        }
     }catch (\Exception $e){
         var_dump($e->getMessage());
         die();
     }
    

@George Чтобы проверить права доступа к папке, мне просто набрать chmod -R / имя_папки 777 в ssh?

Lykas 10.09.2018 10:52

Другие вопросы по теме