Массив $_FILES в PHP пуст

Я пытаюсь загрузить файл с помощью PHP-скрипта, но мой массив $_FILES всегда пуст? Моя запись данных $_POST для элемента ввода HTML файла имеет имя файла... Просто в моей локальной системе не создается файл.

Я проверил доступ на запись к временной папке и явно установил его. Я проверил phpinfo(), чтобы убедиться, что загрузка файлов разрешена, и это так.

Что может этому помешать? Может ли mod_rewrite что-нибудь вызвать?

Спасибо!


person Alexander Trauzzi    schedule 26.10.2009    source источник


Ответы (3)


Когда у вас есть правильный enctype(<form method="post" enctype="multipart/form-data">), проверьте переменную errno в $_FILES, существуют различные возможные причины сбоя. Обычно превышено значение MAX_FILE_SIZE.

http://php.net/manual/en/features.file-upload.errors.php

Начиная с PHP 4.2.0, PHP возвращает соответствующий код ошибки вместе с файловым массивом. Код ошибки можно найти в сегменте ошибки массива файлов, который создается во время загрузки файла с помощью PHP. Другими словами, ошибка может быть найдена в $_FILES['userfile']['error'].

UPLOAD_ERR_OK Значение: 0; Ошибки нет, файл успешно загружен.

UPLOAD_ERR_INI_SIZE Значение: 1; Загруженный файл превышает директиву upload_max_filesize в php.ini.

UPLOAD_ERR_FORM_SIZE Значение: 2; Загруженный файл превышает директиву MAX_FILE_SIZE, указанную в HTML-форме.

и Т. Д.

person Vinko Vrsalovic    schedule 26.10.2009
comment
print_r($_FILES) приводит к array()... К сожалению, эти данные недоступны. Однако у меня есть enctype=multipart/form-data в моей форме. - person Alexander Trauzzi; 27.10.2009
comment
Я посмотрел поближе — как ни странно на экране с более низким разрешением, чтобы было еще смешнее — и в моем коде была опечатка. Это еще более иронично, учитывая, что некоторые из первых нескольких решений, которые я нашел, просматривая это, гласили: следите за опечатками. Итак... Проще говоря... Здесь так много всего, следите за опечатками! Всем спасибо за пинок под зад :) - person Alexander Trauzzi; 27.10.2009

Вы определяете enctype в своей форме?

<form method="post" enctype="multipart/form-data">

Никакой файл не будет загружен, если вы не установите его.

person Damien MATHIEU    schedule 26.10.2009
comment
Да, я отвечаю на очень старую тему, но это была моя точная ошибка и решение. - person Tom Collins; 03.04.2013

Имеет ли форма правильный enctype?

enctype="multipart/form-data"
person Ólafur Waage    schedule 26.10.2009