PHP: файл не загружается — превышен upload_max_filesize

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

Увеличьте upload_max_filesize, post_max_size и client_max_body_size.

В этой статье
  1. Что означает сообщение
  2. Причины и признаки
  3. Пошаговое решение
  4. На что обратить внимание

#Что означает сообщение

Сообщение
Файл слишком большой

Увеличьте upload_max_filesize, post_max_size и client_max_body_size.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
upload_max_filesizeКод UPLOAD_ERR_INI_SIZE в PHPУстановить согласованный upload_max_filesize
post_max_sizeТело больше post_max_size и поля пустыУстановить лимит POST с запасом
Лимит nginxHTTP 413 до запуска PHPПроверить client_max_body_size Nginx
Временный каталогОшибка при создании временного файлаПроверить каталог upload_tmp_dir

#Пошаговое решение

  1. Определите, где именно отклоняется загрузкаЕсли сервер отвечает HTTP 413 до запуска PHP, проверьте ограничение размера тела запроса Nginx/Apache или внешнего прокси. Если PHP запустился, изучите $_FILES["имя_поля"]["error"]: значение UPLOAD_ERR_INI_SIZE (1) связано с upload_max_filesize, UPLOAD_ERR_FORM_SIZE (2) — с MAX_FILE_SIZE формы, другие коды требуют иной диагностики. Если $_POST и $_FILES пусты, возможно превышен post_max_size. Не печатайте содержимое пользовательских файлов в диагностике.
  2. Сверьте ограничения активного веб-PHPВ панели хостинга или временной закрытой диагностической странице проверьте ini_get("upload_max_filesize"), ini_get("post_max_size"), ini_get("memory_limit") и upload_tmp_dir. Для файла до 20 МБ можно обоснованно установить upload_max_filesize=20M, post_max_size=24M с запасом на форму; лимиты должны соответствовать политике сайта. Меняйте конфигурацию активного PHP-FPM, а не только CLI php.ini; при необходимости перезапустите нужный пул.
  3. Проверьте веб-сервер, прокси и временный каталогДля Nginx на обслуживающем сайте может понадобиться client_max_body_size 24m; в подходящем контексте конфигурации; проверьте синтаксис nginx -t и только затем примените nginx -s reload или штатную команду панели. В Apache и внешнем прокси действуют другие параметры. Убедитесь, что у PHP есть свободное место и права записи в каталог временных загрузок. Не делайте весь каталог /tmp доступным на запись любому сервису из-за одной ошибки.
  4. Проверьте загрузку разных размеров и защитуПовторите тест с небольшим допустимым файлом и файлом размером близким к установленному лимиту. Убедитесь, что сервер возвращает понятное сообщение при превышении, а допустимый файл реально записан и проходит проверку типа/расширения и антивирусную обработку, если предусмотрена. Не увеличивайте размер загрузки без учёта дискового места и защиты от злоупотреблений. Удалите диагностическую страницу после проверки.

#На что обратить внимание

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

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.