邮寄申请的大小限制是多少?

时间:2010-03-02 16:37:25

标签: php internet-explorer http post

对不起,如果这是重复的,我会认为它会找不到任何东西。

我有一个flex应用程序,我通过IE将数据发送回php / mysql服务器。我还没有遇到任何问题,但提前知道这可能会让我失去一些挫折和工作。通过http发布数据是否有大小限制?

这篇文章说不: http://www.netlobo.com/ie_form_submit.html

这个讨论是肯定的: http://bytes.com/topic/php/answers/538226-what-maximum-limit-using-post-method

这一切都是我能在网上找到的。所以限制个人测试/验证号码的答案。

我想发回一个可能非常大的XML字符串(比如高达5mb)。

如果它有任何区别:浏览器将始终是IE(我们的产品需要它),帖子来自flexService中的httpService,web服务器是php,DB是mySql。

9 个答案:

答案 0 :(得分:191)

这取决于服务器配置。如果您正在使用Linux或类似的PHP,您可以使用.htaccess配置文件来控制它,如下所示:

#set max post size
php_value post_max_size 20M

而且,是的,我可以亲自证明这一点有效:)

如果您正在使用IIS,我不知道您如何设置此特定值。

答案 1 :(得分:69)

请求(GET和POST)的url部分可能受浏览器和服务器的限制 - 通常安全大小为2KB,因为几乎没有使用较小限制的浏览器或服务器。

请求(POST)的主体通常由服务器在字节大小的基础上限制,以防止一种类型的DoS攻击(请注意,这意味着字符转义可以增加正文的字节大小)。最常见的服务器设置是10MB,但所有流行的服务器都允许通过设置文件或面板增加或减少它。

*旧手机或其他小型设备浏览器存在一些例外情况 - 在这些情况下,它更多地是在设备上为此目的保留的堆空间的功能,然后是其他任何东西。

答案 2 :(得分:46)

此外,在PHP.INI文件中有一个设置:

max_input_vars

在我的PHP版本中:5.4.16默认为1000。

从手册中: “可以接受多少输入变量(限制分别应用于$ _GET,$ _POST和$ _COOKIE superglobal)”

参考:http://www.php.net/manual/en/info.configuration.php#ini.max-input-vars

答案 3 :(得分:11)

您可以通过设置php.ini变量来发布大量数据:max_input_vars 此变量的默认大小为1000,但如果要发送大量数据,则必须相应地增加大小。 如果你不能从ini_set设置大小,你必须通过htaccess或直接对php.ini文件进行更改。

max_input_vars  2500
memory_limit    256M

答案 4 :(得分:5)

大卫指出,在大多数情况下,我会选择KB。

php_value post_max_size 2KB

注意:我的表单很简单,只有几个文本框,而不是长文本。

答案 5 :(得分:1)

由http服务器决定是否有限制。我使用的产品允许管理员配置限制。

答案 6 :(得分:1)

默认情况下,发布请求的最大大小为8mb。但您可以根据自己的要求进行修改。 可以通过打开php.ini文件(php配置设置)来完成修改。

查找

post_max_size=8M  //for me, that was on line:771

根据您的要求更换8。

答案 7 :(得分:0)

适用于因网站托管而无法更改php配置的开发人员。(我的设置为256MB最大大小,1000个最大变量)

我遇到了同样的问题,即在服务器端仅收到5个带有子结构的大数据对象(关联数组)中的2个。

我发现整个子结构在发布请求中被“扁平化”。因此,一个对象变成了数百个文字变量。最后,实际上不是发送5个Object变量,而是发送了数百个基本变量。

解决方案,在这种情况下,是将每个子结构序列化为String。然后,它在服务器上作为5个String变量接收。 例: {variable1:JSON.stringify(myDataObject1),variable2:JSON.stringify(myDataObject2)...}

答案 8 :(得分:-1)

对此最好的解决方案之一,您不要使用多个或超过1,000个输入字段。您可以将多个输入与任何特殊字符连接起来,例如。 @

见:

<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'>

使用任何脚本(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问题。如果你在php.ini文件中增加max_input_vars,这对服务器有害,因为它使用了更多的服务器缓存,这有时会使服务器崩溃。