$ _FILES ['file'] ['size'] отображает 0 (ноль) для файлов сверх upload_max_filesize - PullRequest
0 голосов
/ 16 февраля 2010

Проблема в том, что я хочу проверить, слишком ли большой файл для загрузки, чтобы я мог отобразить соответствующее сообщение об ошибке, но когда файл больше, чем upload_max_filesize в php.ini, кажется, что он отображает только 0.

Почему это происходит?Как я могу проверить, что файл слишком большой, чтобы вызвать соответствующую ошибку?

Ответы [ 2 ]

4 голосов
/ 16 февраля 2010

См. 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.

1 голос
/ 16 февраля 2010

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

edit: как упоминает ниже комментатор, соответствующая ошибка в $ _FILES ['userfile'] ['error'].

...