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

我有一个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(我们的产品需要它),post来自和flex中的httpService, web服务器是php, DB是mySql。


当前回答

对于那些因为网络托管而不能更改php配置的开发人员。(我的设置最大大小256MB, 1000个最大变量)

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

我发现整个子结构在post请求中被“压平”了。一个对象就变成了上百个字面变量。最后,它发送的不是5个对象变量,而是成百上千个元素变量。

这种情况下的解决方案是将每个子结构序列化为String。然后它作为5个字符串变量被服务器接收。 例子: 如上所述{variable1: JSON.stringify (myDataObject1)的操作:JSON.stringify (myDataObject2)…}

其他回答

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

Find

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

根据您的要求更换8个。

正如David所指出的,在大多数情况下我会选择KB。

php_value post_max_size 2K

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

(PHP中KB的简写是K,如下所述。)

对于那些因为网络托管而不能更改php配置的开发人员。(我的设置最大大小256MB, 1000个最大变量)

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

我发现整个子结构在post请求中被“压平”了。一个对象就变成了上百个字面变量。最后,它发送的不是5个对象变量,而是成百上千个元素变量。

这种情况下的解决方案是将每个子结构序列化为String。然后它作为5个字符串变量被服务器接收。 例子: 如上所述{variable1: JSON.stringify (myDataObject1)的操作:JSON.stringify (myDataObject2)…}

你可以通过设置php.ini变量max_input_vars来发布大量的数据 这个变量的默认大小是1000,但如果你想发送大量的数据,你必须相应地增加大小。 如果你不能从ini_set设置大小,你必须通过htaccess或直接改变php.ini文件。

max_input_vars  2500
memory_limit    256M

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

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

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