Решение проблемы Переместить загруженный файл ошибка 8 на PHP 7.2 - UPLOAD_ERR_EXTENSION - PullRequest
0 голосов
/ 04 октября 2019

Я отправляю один файл из формы html5, и PHP хочет перевести фильм в определенный каталог. Move_uploaded_file выдает ошибку 8, что означает неопределенно UPLOAD_ERR_EXTENSION.

Сервер Ubuntu работает под управлением PHP 7.2, без расширения Suhosin . Я уже проверил файл apache error.log, но не нашел никакой записи, касающейся операции.

Прежде, чем я перешел на move_uploaded_file, я имел дело с командой копирования COPY (...), которая также вызвалаошибка, поэтому я узнал, что move_uploaded_file является методом выбора.

Результаты моих проверок до сих пор:

print_r($_FILES);
Array ( [customFile] => Array ( [name] => Array ( [0] => Logo 011.jpg ) [type] => Array ( [0] => image/jpeg ) [tmp_name] => Array ( [0] => /tmp/phpJVODjF ) [error] => Array ( [0] => 0 ) [size] => Array ( [0] => 210813 ) ) )

Файл должен быть перемещен в: / home / csitestore / images /25

Разрешения для этого каталога 777, поэтому полный доступ для всех, чтобы убедиться, что это не проблема: drwxrwxrwx 2 www-data www-data 4096 Okt 4 09:15 25

PHP.ini говорит:

post_max_size = 99M
file_uploads = On
upload_max_filesize = 99M
max_file_uploads = 20
max_execution_time = 90
max_input_time = 90
memory_limit = 512M

Но файл, который я пытался загрузить, имеет размер всего около 210 КБ, поэтому я думаю, что ограничения не дают никакого эффекта.

Как получить более подробное описание ошибки «UPLOAD_ERR_EXTENSION»? Или как мне решить эту проблему?

Мой тег формы из файла html:

<form action="send_data.php" method="post" enctype="multipart/form-data" name="form1" id="form1">

Код из send_data.php для загрузки и перемещения файла:

if(!is_dir("/home/csitestore/images/25")){
  if (!@mkdir("/home/csitestore/images/25")){
      $error = error_get_last();
      echo $error['message'];
  } else {
    chmod("/home/csitestore/images/25", 0777);
  }
}

$path = "/home/csitestore/images/25/test.jpg";
if(!move_uploaded_file($_FILES['customFile']['tmp_name'][0], $path)) --> [0] because I normally use this inside a loop but I am trying with just one file
  {
    $errors= error_get_last();
    echo "Error: ".$errors['type']; = 8 => UPLOAD_ERR_EXTENSION
    echo "<br />\n".$errors['message'];
  }

Не знаю, как действовать сейчас.

...