Это звучит как глупый вопрос, но после загрузки файла файл не находится в месте, где php сказал, что это будет.
Сначала простая тестовая страница:
<html><body> <h1><?=$_FILES['imgup']['tmp_name'];?></h1> <? print_r($_FILES); ?> <form enctype="multipart/form-data" method="post" action="upload.php"> <input type="file" name="imgup" id="imgup"> <input type="submit"> </form> </body></html>
Теперь print_r в виде обычного текста:
Array ( [imgup] => Array ( [name] => ace.jpg [type] => image/jpeg [tmp_name] => /tmp/phpEdfBjs [error] => 0 [size] => 29737 ) )
Таким образом, никакая ошибка, стандартный путь поиска, но / tmp не имеет такого файла. Кроме того, запуск поиска по всей моей системе вызывает пузыри.
FYI: php.ini имеет
max_execution_time = 120 file_uploads = On upload_max_filesize = 2M
и файл, который я загрузил, – 29k
Есть предположения?
Временный файл удаляется, когда полученный PHP-скрипт завершен: это всего лишь временный файл.
PHP-скрипт, на который вы отправляете форму – upload.php, должен переместить временный файл в move_uploaded_file()
местоположение, используя move_uploaded_file()
В принципе, идея такова:
Если загрузка не завершилась успешно, или если вы не перемещаете файл в другом месте, временный файл автоматически удаляется.
В качестве справочного материала вы должны прочитать следующий раздел руководства: Обработка загрузки файлов – загрузка POST-метода
Цитируя ту часть, которая связана с вашей проблемой:
Файл будет удален из временного каталога в конце запроса, если он не был удален или переименован.