## Распространённые подводные камни

Элементу `MAX_FILE_SIZE` нельзя указывать размер файла, который превышает предел, который установили в директиве upload_max_filesize файла php.ini. Ограничение по умолчанию составляет 2 мегабайта.

Если установили ограничения памяти, может потребоваться увеличение значения опции memory_limit. Убедитесь, что значение директивы memory_limit достаточно.

Время, которое потребуется для работы скрипта, может превысить значение опции max_execution_time, если для директивы установили маленькое значение. Убедитесь, что значение директивы `max_execution_time` достаточно.

> Замечание: Директива max_execution_time влияет только на время выполнения самого скрипта. Время, которое заняли действия за пределами скрипта, — системные вызовы функций system() или sleep(), запросы к базе данных, время, которое заняла загрузка файла на сервер, и т. д. — не учитывается при определении максимального времени работы скрипта.

Внимание

Директива max_input_time устанавливает максимальное время в секундах, в течение которого скрипту разрешается получать входные данные; время загрузки файла тоже включается. Загрузка больших файлов, набора файлов или обработка запросов пользователей с медленными соединениями может превысить значение по умолчанию в `60` секунд.

Сервер не загрузит большие файлы, если для директивы post_max_size установили слишком маленькое значение. Проверьте, что значение директивы `post_max_size` достаточно.

Опция max_file_uploads контролирует максимальное количество файлов, которые загружают на сервер в течение одного запроса. Суперглобальный массив $_FILES прекратит обработку файлов, как только достигнет ограничения, если загружается больше файлов, чем в ограничении. Например, если значение директивы max_file_uploads равняется `10`, массив $_FILES не будет содержать больше 10 элементов.

Без проверки того, с каким файлом ведётся работа, пользователи смогут получить доступ к конфиденциальной информации других каталогов.

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

Разработчикам нельзя смешивать обычные `input`-поля и поля загрузки файлов в одной и той же переменной формы (например, нельзя указывать в имени `input`-элемента значение `foo[]`).

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open