Содержание
Движок никак не ограничивает максимальный размер файлов, поэтому он полностью зависит от настроек сервера.
Ограничения файловой системой и архитектурой операционной системы
В общих случаях для 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 отключает проверку размера тела запроса клиента.