Intereting Posts
echo значение функции не будет передаваться по форме Symfony2 – вызов EmailValidator внутри пользовательского валидатора Печать многомерного массива с использованием одного цикла Foreach Использование PHP для разделения содержимого сайта как сделать загрузку файла с помощью сериализации jquery Обходной путь для ограничения 990 символов для почтовых серверов PHP. Рекурсивная замена строк на числа занимает слишком много времени. системное время отличается от временной отметки apache -? Сессии и состояние Напишите текст на изображении пропорционально PHP: получить удаленный размер файла с помощью strlen? (HTML) Laravel 5.2 Вспышка сеанса не работает даже с веб-промежуточным программным обеспечением Неустранимая ошибка: допустимый размер памяти 25165824 байт исчерпан (пытался выделить 31436096 байт) Получить месяц с определенной датой Как найти, какой PHP-скрипт утечка памяти?

Загрузка файла не в / tmp

Это звучит как глупый вопрос, но после загрузки файла файл не находится в месте, где 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

Есть предположения?

Solutions Collecting From Web of "Загрузка файла не в / tmp"

Временный файл удаляется, когда полученный PHP-скрипт завершен: это всего лишь временный файл.

PHP-скрипт, на который вы отправляете форму – upload.php, должен переместить временный файл в move_uploaded_file() местоположение, используя move_uploaded_file()

В принципе, идея такова:

  • Пользователь загружает файл в ваш скрипт,
    • Этот файл хранится во временном lcoation.
  • Ваш скрипт работает над этим файлом:
    • Проверяет, является ли файл ОК (тип содержимого, размер, …)
  • И если файл в порядке, ваш скрипт перемещает его в постоянный каталог хранилища (где бы вы ни захотели)

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

В качестве справочного материала вы должны прочитать следующий раздел руководства: Обработка загрузки файлов – загрузка POST-метода

Цитируя ту часть, которая связана с вашей проблемой:

Файл будет удален из временного каталога в конце запроса, если он не был удален или переименован.