【发布时间】:2011-11-01 17:19:11
【问题描述】:
我了解,如果 POST 请求超过 post_max_size,$_POST 和 $_FILES 超全局变量将变为空。
我已经看到很多关于如何检测这种情况的讨论,但从来没有解释过为什么超全局变量是空的。清除 POST 数据对我来说似乎很奇怪,迫使用户重新输入他们的答案。也许是一种安全预防措施?
对其他语言(java、.net)感到好奇。他们的行为是否相似?
谢谢
【问题讨论】:
-
查看this question接受的答案
-
看到图片与文本数据一起发送对我来说似乎很奇怪。
-
甚至网络服务器本身也可能有限制,例如Apache's LimitRequestBody.
-
@ÁlvaroG.Vicario,感谢您的回复。幸运的是,LimitRequestBody 的默认值是无限制的,我在我们的服务器设置中验证了这一点。
-
@jbarreiros 如果你不明白为什么帖子数据会被丢弃,请阅读多部分 MIME 消息的工作原理,特别注意
multipart/form-data类型.当到达post_max_size时,服务器将停止接收和/或解析请求,并且不能保证文件数据后面没有更多“标准” POST 字段,因此 PHP 将把它全部丢弃,以防万一可能缺少的字段之一是至关重要的,缺少它的事实将导致您的应用程序对您的服务器进行意外更改。
标签: java php .net file-upload