PHP post_max_size против upload_max_filesize, в чем разница?

При попытке загрузить PDF файл, который был 15 МБ через административную область, созданную для этого, ничего не произошло. Не было ни сообщения об успехе, ни об ошибке, но PDF не загружал.

Затем я подумал, что это может быть проблемой с php.ini Настройки. Конечно же, когда я посмотрел на файл, я обнаружил, что ограничения были установлены на 8 м. Что я предполагаю, означает 8mb.

post_max_size: http://php.net/post-max-size

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
post_max_size = 20M

upload_max_filesize: http://php.net/upload-max-filesize

; Maximum allowed size for uploaded files.
upload_max_filesize = 20M

Глядя на комментарии, кажется, что один для загружаемых файлов, а другой имеет непосредственное отношение к POST данные. Что меня смущает, так это сценарий: если у вас есть форма, которая POSTизображения на другую страницу, что это значит, upload_max_filesize или же post_max_size? Это подпадает под оба? Один имеет приоритет? Есть ли случаи, когда один будет использоваться, а не другой?

Редактировать:

Поэтому, если у меня есть форма, которая имеет 3 файловых ввода, все разрешающие файлы размером 20 МБ или меньше, параметры должны быть установлены следующим образом:

upload_max_filesize = 20M
post_max_size = 60M

2 ответа

Решение

Ты прав. post_max_size это максимальный размер для всех данных тела POST. Неважно, используете ли вы POST-файл JSON или свою коллекцию DVD, это все данные тела POST. Загрузка вашего файла засчитывается в это ограничение. Вы также должны знать, что если вы загружаете несколько файлов, общий размер файла должен соответствовать этому пределу.

upload_max_filesize максимальный размер только для файлов, которые размещены. Другие типы данных тела POST не подпадают под это ограничение.

Короче говоря, если вы хотите загружать большие файлы, вы должны увеличить оба ограничения.

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

Другие вопросы по тегам