Что именно это означает, когда $ _FILES пуст? - PullRequest
5 голосов
/ 25 мая 2010

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

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

Это как-то связано с настройками в php.ini?

Просто чтобы уточнить

Я проверял, что $_FILES пуст, используя следующее:

if(empty($_FILES))
{
    die('$_FILES is empty.');
}

Ответы [ 3 ]

7 голосов
/ 25 мая 2010

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

echo ini_get("upload_max_filesize");

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

1 голос
/ 25 мая 2010

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

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

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

EDIT : я знаю, что вы можете установить максимальный размер файла в файле php.ini, но я не уверен, что это даст вам пустой массив файлов.Я думаю, вы просто получите ошибку.

0 голосов
/ 25 мая 2010

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

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

Для большей уверенности (если у вас есть массив - добавление к сообщению 'check the error key', кстати), вы также можете проверить размер

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...