如何防止警告:POST内容长度和内存大小

jav*_*web 9 php post file-upload filesize max-size

目前,当用户上传照片时,该页面显示"警告:POST内容长度XXX字节超过了第0行未知中21000000字节的限制".

我知道这意味着什么,我不找solultions如增加max_upload值甚至memory_size_limit ......因为用户可以和用户上传的废话TB的,即使你明确地告诉他们,只有20MB的最大文件和图像只允许.

我正在寻找一个解决方案:

  • 如何防止这种警告甚至发生?
    或至少:
  • 如何防止显示此警告?

编辑:请仔细阅读!- 请理解当然我正在处理错误/警告(自第1行以来),问题是这发生在虚拟"行0"上,这就是为什么我需要隐藏错误或阻止它引发 - 因为我不能放发生错误的地方之前的任何代码.

EDIT2:经过长时间的研究和挖掘后,我得到了一个想法 - 它有效 - 看看我自己的答案.

jav*_*web 11

因此,在搜索而不是今天工作之后,我终于知道如何解决这个问题,它有效,甚至没有造成太大的损害.但在做之前,请先了解你在做什么.:)正如我在其中一条评论中建议的那样,真的可以在.htacess中关闭PHP错误 - 只需关闭PHP启动警告即可.

在应用解决方案之前:

请注意:将此代码插入.htaccess后,您将无法看到任何 启动错误

另请注意: "0"行上的启动错误多于此行.

之前:在执行此操作之前,您应该以检查上载的内容大小并为用户提供正确的信息消息的方式准备脚本.警告没有显示的事实并不意味着你不应该对它做任何事情.这意味着完全相反 - 你应该尽一切可能做出至少接近警告加注的东西 - 检查,仔细检查你是否可以,处理错误并提出你自己的错误信息.

将此添加到.htaccess:

php_flag display_startup_errors off

它似乎不是那么邪恶:

请注意,这关闭启动错误.
因此所有常规PHP错误/警告/通知都保持开启:)

甚至XAMPP的PHP"本身"也推荐它用于制作:

php.ini文件文字说:

; display_startup_errors
;   Default Value: Off
;   Development Value: On
;   Production Value: Off
Run Code Online (Sandbox Code Playgroud)

PS: "启动错误"似乎是PHP脚本执行之前的那些错误- 这些错误通常试图"说服"你,他们在第0行.

感谢我的想法和答案:如何在.htaccess文件中禁用PHP中的通知和警告?

编辑:因为这是一个php_flag设置,你当然也可以在你的php.ini中默认设置它,如果你有PHP的自定义安装程序:)


axe*_*ew3 5

问题是

如何预防警告:POST内容长度

答案是,无需编辑任何配置值,请将以下代码放在将接收要处理的表单的文件的开头:

 <?php // here start your php file
 ob_get_contents();
 ob_end_clean();
Run Code Online (Sandbox Code Playgroud)

那是。没有更多的警告,以及您不想在页面上输出的任何其他内容。之后,根据其他地方的建议,您可以决定如何处理:

if($_SERVER['REQUEST_METHOD'] == 'POST' && empty($_POST) && empty($_FILES) && $_SERVER['CONTENT_LENGTH'] > 0){ echo"WoW your file is too big!"; }
Run Code Online (Sandbox Code Playgroud)

如果您以另一种方式传递了有关要由Php处理的文件的正确值,则可能还会对文件进行分块。

如此处所述警告:POST内容长度...