Что точно это означает, когда $ _FILES пуст?

Я работаю над сценарием загрузки PHP и при тестировании моих проверок на ошибки, я попытался загрузить файл TIFF 17 МБ. Когда я делаю это, $ _FILES массив пуст. Сценарий хорошо работает для того, что мне нужен он, чтобы сделать, который должен загрузить файлы JPEG. Мое решение состоит в том, чтобы протестировать, если $ _FILES пуст или не прежде, чем продолжить сценарий загрузки.

Кто-либо может объяснить, почему $ _FILES пуст, когда TIFF предпринят, чтобы быть загруженным? Мое решение, чтобы проверить, пуст ли $ _FILES или нет, хорошо один?

Делает это имеет некоторое отношение к настройкам в php.ini?

Просто для уточнения

Я проверял это $_FILES было пустое использование следующего:

if(empty($_FILES))
{
    die('$_FILES is empty.');
}
5
задан Mike Moore 25 May 2010 в 06:55
поделиться

3 ответа

Да, upload_max_filesize управляет максимальным размером загрузки, который, скорее всего, превышен файлом TIFF. По умолчанию - 2M. Вы можете проверить:

echo ini_get("upload_max_filesize");

РЕДАКТИРОВАТЬ: На самом деле точная причина более вероятна post_max_size , которая всегда> = upload_max_filesize: "Если размер данных сообщения больше, чем post_max_size, $ _POST и $ Суперглобальные объекты _FILES пусты. "

7
ответ дан 14 December 2019 в 04:31
поделиться

Вы должны проверить, равно ли $ _ FILES ['file'] ['error'] 0 . Это указывает на «успех».

Если ваш массив файлов пуст, это может быть связано с какой-то другой проблемой, например, с отсутствием enctype.

Попробуйте выполнить var_dump ($ _ FILES) и просмотреть содержимое ...

ИЗМЕНИТЬ : Я знаю, что вы можете установить максимальный размер файла в php.ini файл, но я не уверен, что это даст вам пустой массив файлов. Думаю, вы просто получите ошибку.

1
ответ дан 14 December 2019 в 04:31
поделиться

Как уже сообщалось, он пуст, потому что в случае сбоя. Также проверьте такой элемент формы:

<input type="hidden" name="MAX_FILE_SIZE" value="-maxsizegoeshereinbytes-" />

Для дополнительной уверенности (если у вас действительно есть массив - добавив к сообщению «проверьте ключ ошибки», кстати), вы также можете проверить размер

if( $_FILES['file']['size'] > 0 ) {

}
0
ответ дан 14 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: