【发布时间】:2014-03-09 10:05:51
【问题描述】:
目前,当用户上传照片时,页面显示“警告:XXX 字节的 POST Content-Length 超过第 0 行未知中 21000000 字节的限制”。
我知道这意味着什么,我不是在寻找诸如增加 max_upload 值甚至 memory_size_limit 之类的解决方案...因为即使您明确告诉用户,用户也可能将上传 TB 的废话它们最多只能有 20MB 的文件,并且只允许使用图像。
我正在寻找解决方案:
-
如何防止这种警告发生?
或者至少: - 如何防止显示此警告?
编辑:请阅读! - 请理解我当然在处理错误/警告(从第 1 行开始),问题是 这发生在虚拟“第 0 行” 这就是我需要的原因隐藏错误或防止它引发 - 因为我不能在错误发生的地方之前放置任何代码。
EDIT2:经过长时间的研究和挖掘,我终于有了一个想法——它奏效了——看看我自己的答案。
【问题讨论】:
-
不显示错误意味着不是解决问题而是通过它。我不鼓励它。您可以在上传之前检查文件的大小(在现代浏览器上 - HTML5 File API),请查看:stackoverflow.com/a/11514290/998096
-
如果用户发送的请求过大,他们可能而且应该被您的Web 服务器拒绝,而不是因为内存耗尽而隐藏错误。但是,如果您不是在寻找如何正确操作的解决方案,那么为什么还要费心隐藏消息呢?
-
@OfirBaruch 我知道,但总会有人绕过客户端检查我正在寻找服务器端解决方案
-
@N.B.我需要捕获 PHP 中的错误以告诉用户“嘿,你上传的内容太多了”,但问题是这发生在脚本之前......那么你有什么解决方案吗?
-
当你提出这样的问题时,StackOverflow 上的每个人都会立即假设你做错了什么,这很有趣。可悲的是,在许多情况下,这些人可能是正确的。但在这种情况下,那些人应该已经意识到 HTTP 请求的基本规则在这里适用:你永远不能相信浏览器/客户端发送给你的内容。
标签: php post file-upload filesize max-size