Я пытаюсь разрешить пользователям загружать большие файлы (64 МБ) и планирую изменить:
upload_max_filesize to 64MB
Однако, следует также изменить
memory_limit to 64MB or larger?
Подключен ли memory_limit к max_filesize?
Нет, это не обязательно.
PHP имеет разные POST-ридеры и обработчики в зависимости от типа содержимого запроса. В случае «multipart / form-data» (что используется для отправки файлов), rfc1867_post_handler
действует как смешанный считыватель / обработчик. Он заполняет как $_POST
и $_FILES
. То, что входит в число $_POST
относится к пределу памяти, что также учитывается в $_FILES
.
Однако $_FILES
имеет только метаданные о файлах, а не о самих файлах. Они просто записываются на диск и, следовательно, не учитываются в пределе памяти.
post_max_size
должно быть больше, чем upload_max_filesize
. Если форма содержит больше загрузок файлов, то post_max_size
должен быть больше суммы из них.
memory_limit
не играет существенной роли в загрузке файлов, поскольку загруженные файлы хранятся в каталоге /tmp
(Linux), а не в памяти. Если вы хотите отправить большой объем данных с полями формы (не загружайте файлы), тогда вам нужен большой memory_limit
иначе нет.