Назад | Перейти на главную страницу

как рассчитать точные лимиты загрузки php

максимальный размер загрузок в php зависит от количества настроек. вот они, помещенные в файл виртуальных хостов apache:

php_admin_flag file_uploads on

php_admin_value memory_limit 560M
php_admin_value post_max_size 530M
php_admin_value upload_max_filesize 500M

php_admin_value max_execution_time 0
php_admin_value max_input_time 0

пожалуйста, не обращайте внимания на приведенные выше значения, но они позволяют мне загружать около 150–200 МБ. memory_limit, post_max_size и upload_max_filesize имеют определенные соотношения между собой. я полагаю, что

upload_max_filesize < post_max_size < memory_limit

однако я не знаю, как рассчитать точные размеры. например, какими должны быть значения этих параметров, чтобы разрешить загрузку точно 100M файлов? Из того, что я собрал в Интернете, существует ряд факторов, определяющих эти соотношения, но я не смог найти никаких ссылок, что это за факторы.

Я использую систему Linux.

Ограничение памяти не зависит от размера загружаемых файлов POST. Загруженные файлы будут проанализированы непосредственно PHP и помещены во временную папку.

В upload_max_filesize должно быть 100 млн, а ваш post_max_size должно быть 100 МБ + накладные расходы на многостраничное кодирование. Накладные расходы низкие, поскольку они кодируются в двоичном формате с границей. Даже со 101МБ работать будет.

Теперь он все еще может привести к сбою вашего скрипта, если вы затем сделаете $file = file_get_contents('path/to/uploaded/file.ext'); потому что в этом случае memory_limit вступит в силу.