Настройка максимального размера файла

Движок никак не ограничивает максимальный размер файлов, поэтому он полностью зависит от настроек сервера.

Ограничения файловой системой и архитектурой операционной системы

В общих случаях для 32-х битных систем максимально возможный размер файла для загрузки составляет 2 Гб, вне зависимости от значений других опций. Для 64-х битных архитектур предельный размер зависит от файловой системы.

Ограничения PHP

Основные директивы, от значений которых зависит загрузка файлов:

  • upload_max_filesize;
  • post_max_size;
  • memory_limit;
  • max_execution_time;
  • max_input_time;
  • output_buffering;
  • размер раздела, где находится директория, указанная в директиве upload_tmp_dir

Директива upload_max_filesize

Максимальный размер закачиваемого файла.

Директива post_max_size

Устанавливает максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше, значения директивы upload_max_filesize. Если размер POST-данных больше чем post_max_size, то.

Директива memory_limit

Эта директива задает максимальный объем памяти в байтах, который разрешается использовать скрипту. В сущности, memory_limit должна быть больше чем post_max_size.

Директива max_execution_time

Устанавливает максимальное количество секунд, которое может исполнятся скрипт. Данный параметр должен обеспечивать достаточное количество времени для загрузки больших файлов. По умолчанию 30. Заметьте, что в конфигурации web сервера так же есть подобные директивы тайм-аута и они могут перекрыть значения директив php.

Директива max_input_time

Максимальное количество секунд, в течении которых скрипт может считывать входящие данные, например, POST и GET. Слишком маленькое выставленное время приведет к тайм-ауту больших по весу загрузок.

Директива output_buffering

Буферизация вывода должна быть выключена. output_buffering = 0.

Примеры

В конфигурационном файле PHP — php.ini:

post_max_size=300M
upload_max_filesize=300M
max_execution_time=1800
max_input_time=1800

В файле .htaccess в корне вашей директории InstantMedia:

php_value post_max_size 100M
php_value upload_max_filesize 100M
php_value max_execution_time 1800
php_value max_input_time 1800

Текущие значения указанных опций можно посмотреть в настройках видео каталога во вкладке «Диагностика».

Ограничения Apache

В Apache есть директива LimitRequestBody, ограничивающая размер запроса. Эта директива указывает число байтов от 0 (означающее неограниченное количество) до 2147483647 (2GB), которые разрешены в теле запроса. Также, если у вас сайт доступен по https, то необходимо корректировать значение директивы SSLRenegBufferSize.

Ограничения Nginx

Если у вас двухуровневая конфигурация веб сервера: Nginx+Apache, то вам необходимо корректировать директиву client_max_body_size. Директива задаёт максимально допустимый размер тела запроса клиента, указываемый в поле “Content-Length” заголовка. Установка параметра размер в 0 отключает проверку размера тела запроса клиента.

 Управление лицензиямиНастройка планировщика CRONКак установить Ioncube loaderРетрансляция и прямое воспроизведение видео

PHP — Загрузка файлов больших размеров в PHP

Войти

Загрузка файлов больших размеров в PHP

Те, кто уже пытался загружать файлы, вполне вероятно, обратили внимание на то, что загрузить файл через PHP даже среднего размера (15-20 МБ) не представляется возможным. А ведь это не такой уж и большой размер файла, и в этой статье я расскажу, как загружать файлы больших размеров в PHP.

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

  • max_execution_time — максимальное время, которое может выполняться скрипт. Как правило, стоит 30-60 секунд.
  • max_input_time — максимальное время, в течение которого могут приниматься данные на сервер. Здесь также стоит порядка 30-60 секунд.
  • upload_max_filesize
  • — максимальный размер файла, который допускается для загрузки на сервер. Ключевая настройка, однако, вопреки общему заблуждению, далеко не единственная необходимая для загрузки больших файлов в РHP.
  • post_max_size — максимальный размер отправляемых данных.

Фактически, чтобы загружать большие файлы в PHP, нужно исправить все 4 настройки. Делается это с помощью файла .htaccess, в который нужно добавить следующие строки (безусловно, значения можно менять на свои):

1
2
3
4
5
6
7
8
<?php 

php_value max_execution_time 500
php_value max_input_time 500
php_value upload_max_filesize 30M
php_value post_max_size 30M

?>

Почему все 4 опции так важны:

  • max_execution_time — здесь нужно поставить время, за которое должен успеть загрузиться файл.
    Очевидно, что файл размеров 30 МБ вряд ли загрузится за 30-60 секунд, поэтому безусловно, это время надо увеличивать.
  • max_input_time — аналогично с max_execution_time. Ведь если первые 60 секунд будут приниматься данные, а потом перестанут, то вновь файл не успеет загрузиться.
  • upload_max_filesize — эту опцию меняют все и без проблем, однако, когда ничего не меняется — удивляются, а ведь она хоть и является ключевой, но, тем не менее, другие три так же очень важны.
  • post_max_size — максимальный размер отправляемых данных так же очевиден, ведь если файл большого размера, то он не сможет полностью отправиться из-за этого ограничения.

Однако, будьте внимательны! До бесконечности увеличивать эти параметры нельзя! Все эти настройки ограничены оперативной памятью, выделяемой Вам сервером. Запомните следующее неравенство, которое всегда должно соблюдаться: «upload_max_filesize

Ссылки по теме:

  1. 1. instantvideo.ru

Как увеличить размер загружаемого файла для приложения PHP

Директива upload_max_filesize определяет максимально допустимый размер загружаемых файлов в

PHP . Поскольку загрузка файлов выполняется с использованием метода HTTP POST , он также ограничен значением post_max_size . Это означает, что фактический максимальный размер загружаемого файла для PHP привязан к наименьшему значению post_max_size и upload_max_filesize .

post_max_size
Максимальный размер данных POST, которые может принять PHP.
Его значение может быть равно 0, чтобы отключить ограничение. Игнорируется, если чтение данных POST отключено с помощью enable_post_data_reading .
http://php.net/post-max-size

Вы можете увеличить максимальный размер загружаемого файла приложения

PHP , обновив директивы upload_max_filesize и post_max_size в файле конфигурации PHP . Вы также можете настроить те же параметры в .htaccess , если у вас нет административного доступа к системе.

  1. Откройте файл php.ini с помощью предпочитаемого вами текстового редактора.

     $ судо-ви /etc/php/7.4/apache2/php.ini 
  2. Найдите директиву upload_max_filesize .

     ; Максимально допустимый размер загружаемых файлов.
    ; http://php.net/upload-max-размер файла
    upload_max_filesize = 2M 
  3. Установите предпочтительное значение для upload_max_filesize .

     upload_max_filesize = 128M 
  4. Поиск директивы post_max_size .

     ; Максимальный размер данных POST, которые может принять PHP.
    ; Его значение может быть 0, чтобы отключить ограничение. Игнорируется, если чтение данных POST
    ; отключен через enable_post_data_reading.
    ; http://php.net/post-max-размер post_max_size = 8M
  5. Установите предпочтительное значение для post_max_size .

     post_max_size = 128M 

    Это значение должно быть установлено как минимум на уровне 9.0003 значение upload_max_filesize . Установите значение 0 , чтобы не накладывать ограничения на размер.

  6. Перезапустите веб-сервер, чтобы изменения вступили в силу

    Кроме того, вы можете добавить следующие строки в свой .htaccess , и настройка будет применяться к сценариям из каталога .htaccess без необходимости возиться с конфигурацией

    PHP .

     php_value upload_max_filesize 128M
    php_value post_max_size 128M 

Автор: Мохд Шакир Закария
Мохд Шакир Закария по профессии архитектор облачных вычислений, но он всегда видит свои истинные увлечения: разработку, предпринимательство и защиту открытого исходного кода. Как основатель Simplified Guide, он объединяет эти интересы, чтобы помочь другим легко ориентироваться в мире вычислений.


Обсудить статью:

Комментировать анонимно. Логин не требуется.

Как увеличить размер загружаемого файла в PHP

Аарон Кили

Категории PHP

2 комментария

Вы разработчик PHP или системный администратор, управляющий серверами, на которых размещены приложения PHP? Вы ищете способ увеличить или установить размер загружаемого файла в PHP? Если да, то следуйте этой статье, в которой показано, как увеличить размер загружаемого файла в PHP, а также объясняются некоторые основные директивы PHP для обработки загрузки файлов, а также POST данные.

По умолчанию максимальный размер загружаемого файла PHP установлен равным 2 МБ файл на сервере, но вы можете увеличить или уменьшить максимальный размер загружаемого файла с помощью файла конфигурации PHP ( php.ini ), этот файл можно находятся в разных местах в разных дистрибутивах Linux.

 # vim /etc/php.ini [ В Cent/RHEL/Fedora ]
# vim /etc/php/7.0/apache2/php.ini [ в Debian/Ubuntu ]
 

Чтобы увеличить размер загружаемого файла в PHP, вам необходимо изменить переменные upload_max_filesize и post_max_size в файле php.ini .

 upload_max_filesize = 10M
post_max_size = 10M
 

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

 max_file_uploads = 25
 

Переменная post_max_size , которая используется для установки максимального размера данных POST , которые будет принимать PHP. Установка значения 0 отключает ограничение. Если чтение данных POST отключено через enable_post_data_reading , то оно игнорируется.

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

  --------------- SystemD --------------- 
# systemctl перезапустить nginx
# systemctl перезапустить httpd
# systemctl перезапустить apache2

  --------------- Винит системы --------------- 
# перезапуск службы nginx
# перезапуск службы httpd
# перезапуск службы apache2
 

Вот оно! В этой короткой статье мы объяснили, как увеличить размер загружаемого файла в PHP.