PHP размер загружаемого файла


В PHP размер загружаемого файла определяется параметрами upload_max_filesize и post_max_size, параметры задаются в php.ini

php.ini — файл в котором определяются настройки PHP, которые будут использоваться при выполнении скриптов. php.ini может быть один и существовать только на уровне сервера или их может быть несколько (например, для каждого сайта).

Стандартный файл php.ini выглядит чаще всего примерно следующим образом (приведены основные параметры):

  • memory_limit = 32M
  • max_execution_time = 60
  • max_input_time = 60
  • upload_max_filesize = 128M
  • post_max_size = 128M
  • magic_quotes_gpc = Off
  • magic_quotes_runtime = Off
  • magic_quotes_sybase = Off
  • mail.log = /home/admin/sendmail.log
  • expose_php = Off
  • date timezone=Asia/Yekaterinburg


Все существующие настройки можно посмотреть в phpinfo



Важными для работы сайтов параметрами является значение директивы, определяющей временную зону, а также memory_limit — ограничение памяти для процессов не стоит задавать слишком большим, это повлечет выделение излишка памяти РНР, остальным же процессам ресурсов сервера при этом может не хватать.


Хорошей практикой является установка memory_limit минимальным возможным (увеличивать значение стоит маленькими шагами при появлении в логах PHP записей такого вида:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4104 bytes))




Задание размера загружаемых файлов в php.ini


Максимальный размер загружаемого файла определяется директивой upload_max_filesize и задается в мегабайтах. Типовые значения для большинства сайтов 4-256 Мб, может быть значительно больше, всё зависит от того какие файлы загружаются.


php размер загружаемого файла


Также есть параметр post_max_size, в PHP размер загружаемого файла определяет и он. Им задается объем файла при передаче на сервер POST запросом, а все формы обратной связи и загрузки на сервер выполняются POST запросами.



Изменения, внесенные в php.ini вступают в силу после окончания времени жизни процесса, задаваемого max_execution_time или при выполнении в консоли команды pkill php.


Стоит иметь в виду, что upload_max_filesize задает ограничение на уровне РНР. также определенные ограничения существуют на уровне веб-сервера, они задаются в конфигурационных файлах — если файлы нужного размера не загружаются — в большинстве случаев, следует проверить конфиги Nginx и Apache.



Для Nginx в логах часто можно обнаружить ошибки Client intended to send too large body, которые устраняются увеличением лимитов в конфигурационных файлах.

Сказать спасибо
Categories: