В конце прошлой недели разбирался с проблемами, которые, начали возникать в работе одного из старых проектов, одна из них была связана с загрузкой файлов на сервер. Проблема была решена довольно таки быстро, после просмотра значений суперглобального массива $_FILES, а точнее переменной $_FILES['file']['error']. Код возвращаемой ошибки – 1, довольно быстро помог справиться с задачей, а теперь разберемся в значениях данной переменной и что же делать, если ее значение больше нуля. Итак, по порядку:
UPLOAD_ERR_OK — Значение: 0; Поздравляем, у вас не возникло никаких проблем при загрузке файла.
UPLOAD_ERR_INI_SIZE — Значение: 1; Тут тоже проблем особых не наблюдается, данное знаечение намекает нам на то, что неплохо бы было увеличить значение директивы upload_max_filesize, так как размер загружаемого файла превысил максимально допустимый размер, заданный вышеуказанной директивой.
Размер принятого файла превысил максимально допустимый размер, который задан директивой upload_max_filesize конфигурационного файла php.ini.
UPLOAD_ERR_FORM_SIZE — Значение: 2; Если вы не используете в форме скрытое поле:
<input name="MAX_FILE_SIZE" value="1048576" type="hidden"/>
возникновение данной ошибки вам не грозит. Стоит все-таки сказать, что значение MAX_FILE_SIZE может быт подделано на стороне пользователя, поэтому использовать его как надежный способ ограничения размера загружаемых файлов все-таки не стоит.
Следующие четыре ошибки особо подробно рассматривать нет смысла, тут и отсутствие прав на запись в конечной папке, и просто потерянные пакеты, так что ограничимся просто описанием:
UPLOAD_ERR_PARTIAL — Значение: 3; Загружаемый файл был получен только частично.
UPLOAD_ERR_NO_FILE — Значение: 4; Файл не был загружен.
UPLOAD_ERR_NO_TMP_DIR — Значение: 6; Отсутствует временная папка. Добавлено в PHP 4.3.10 и PHP 5.0.3
UPLOAD_ERR_CANT_WRITE — Значение: 7; Не удалось записать файл на диск. Добавлено в PHP 5.1.0
UPLOAD_ERR_EXTENSION — Значение: 8; PHP-расширение остановило загрузку файла. Правда PHP не предоставляет нам способ определить, какое из расширений решило похулиганить, так, что в это случае смотрим список загруженных расширений их phpinfo().Добавлено в PHP 5.2.0.