Каков размер лимита почтового запроса?
Извините, если это дубликат, я бы подумал, что это будет, но ничего не может найти.
У меня есть приложение flex, которое я отправляю на сервер php/mysql через IE. Я еще не сталкивался с какими-либо проблемами, но, зная это раньше, может спасти меня от разочарования и работы. Есть ли ограничение по размеру для отправки данных через http?
В этой статье говорится:
http://www.netlobo.com/ie_form_submit.html
В этом обсуждении дано:
http://bytes.com/topic/php/answers/538226-what-maximum-limit-using-post-method
И все идет туда и обратно, что я могу найти в Интернете. Поэтому пожалуйста ограничьте ответы на лично проверенные/проверенные номера.
Я хочу отправить обратно XML-строку, которая может быть довольно большой (скажем, до 5 мб).
Если это имеет значение: браузер всегда будет IE (наш продукт требует его), сообщение отправляется из и httpService в flex, веб-сервер - php, DB - mySql.
Ответы
Ответ 1
Это зависит от конфигурации сервера. Если вы работаете с PHP под Linux или аналогичным, вы можете управлять им с помощью конфигурационного файла .htaccess, например:
#set max post size
php_value post_max_size 20M
И, да, я лично могу подтвердить, что это работает:)
Если вы используете IIS, я не знаю, как вы установили это значение.
Ответ 2
URL-адрес запроса (GET и POST) может быть ограничен как браузером, так и сервером - обычно безопасный размер составляет 2 КБ, поскольку почти нет браузеров или серверов, которые используют меньший предел.
Тело запроса (POST) обычно * ограничено сервером на основе размера байта, чтобы предотвратить тип DoS-атаки (обратите внимание, что это означает, что экранирование символов может увеличить размер байта тела). Наиболее распространенный параметр сервера - 10 МБ, хотя все популярные серверы позволяют увеличить или уменьшить его с помощью файла настроек или панели.
* Некоторые исключения существуют с более старыми сотовыми телефонами или другими браузерами небольших устройств - в этих случаях это больше функция кучного пространства, зарезервированного для этой цели на устройстве, и что-то еще.
Ответ 3
Кроме того, в файле PHP.INI есть параметр:
max_input_vars
который в моей версии PHP: 5.4.16 по умолчанию - 1000.
Из руководства:
"Сколько входных переменных может быть принято (ограничение применяется к $_GET, $_POST и $_COOKIE суперглобальным отдельно)"
Ref.: http://www.php.net/manual/en/info.configuration.php#ini.max-input-vars
Ответ 4
Вы можете разместить большой объем данных, установив переменную php.ini: max_input_vars
Размер по умолчанию этой переменной - 1000, но если вы хотите отправить большой объем данных, вам необходимо увеличить размер соответственно.
Если вы не можете установить размер из ini_set, вам нужно сделать это через htaccess
или непосредственно внести изменения в файл php.ini.
max_input_vars 2500
memory_limit 256M
Ответ 5
Как отметил Дэвид, в большинстве случаев я бы пошел с КБ.
php_value post_max_size 2KB
Примечание: моя форма проста, всего несколько текстовых полей, не длинный текст.
Ответ 6
Для http-сервера нужно решить, существует ли предел. Продукт, над которым я работаю, позволяет администратору настроить предел.
Ответ 7
По умолчанию запрос на отправку имеет максимальный размер 8 МБ. Но вы можете изменить его в соответствии с вашими требованиями.
Модификацию можно выполнить, открыв файл php.ini(настройка конфигурации php).
Find
post_max_size=8M //for me, that was on line:771
замените 8 в соответствии с вашими требованиями.
Ответ 8
Одно из лучших решений для этого, вы не используете несколько или более 1000 полей ввода. Вы можете объединить несколько входов с любым специальным символом, например. @
.
Смотрите это:
<input type='text' name='hs1' id='hs1'>
<input type='text' name='hs2' id='hs2'>
<input type='text' name='hs3' id='hs3'>
<input type='text' name='hs4' id='hs4'>
<input type='text' name='hs5' id='hs5'>
<input type='hidden' name='hd' id='hd'>
Используя любой script (JavaScript или JScript),
document.getElementById("hd").value = document.getElementById("hs1").value+"@"+document.getElementById("hs2").value+"@"+document.getElementById("hs3").value+"@"+document.getElementById("hs4").value+"@"+document.getElementById("hs5").value
При этом вы обойдете проблему max_input_vars
. Если вы увеличиваете max_input_vars
в файле php.ini, это вредно для сервера, потому что в нем используется больше кэш-памяти сервера, и иногда это может привести к сбою сервера.