PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP警告:POST内容 – n字节的长度超过第0行中未知的3145728字节的限制大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我非常惊讶地发现我的错误日志中的上述错误,因为我以为我已经完成了必要的工作来捕获我的 PHP脚本中的错误
if ($_FILES['image']['error'] == 0)
{
 // go ahead to process the image file
}
else
{
 // determine the error
 switch($_FILES['image']['error'])
 {
  case "1":
  $msg = "Uploaded file exceeds the upload_max_filesize directive in PHP.ini.";
  break;
  ....
 }
}@H_450_2@ 
 

在我的PHP.ini脚本中,相关设置为:

@H_212_1@memory_limit = 128M post_max_size = 3M upload_max_filesize = 500K@H_450_2@

我明白,3M相当于3145728字节,这是触发错误的.如果文件大小超过500k但小于3M,则PHP脚本将能够正常运行,根据情况1在$msg中发出错误消息.

如果邮件大小超过post_max_size但仍然在内存限制内,我如何捕获此错误,而不是让脚本突然终止使用PHP警告?我已经看过类似的问题here,herehere,但找不到答案.

找到一个不直接处理错误的替代解决方案.以下代码软件工程师Andrew Curioso在其 blog中编写:
if($_SERVER['requEST_METHOD'] == 'POST' && empty($_POST) &&
     empty($_FILES) && $_SERVER['CONTENT_LENGTH'] > 0)
{
  $displaymaxSize = ini_get('post_max_size');

  switch(substr($displaymaxSize,-1))
  {
    case 'G':
      $displaymaxSize = $displaymaxSize * 1024;
    case 'M':
      $displaymaxSize = $displaymaxSize * 1024;
    case 'K':
       $displaymaxSize = $displaymaxSize * 1024;
  }

  $error = 'Posted data is too large. '.
           $_SERVER[CONTENT_LENGTH].
           ' bytes exceeds the maximum size of '.
           $displaymaxSize.' bytes.';
}@H_450_2@ 
 

如他的文章中所解释的,当post的大小超过post_max_size时,$_POST和$_FILES的超级全局数组将变为空.因此,通过测试这些并通过确认使用POST方法发送一些内容,可以推断出发生了这样的错误.

实际上有一个类似的问题here,我以没有找到.

大佬总结

以上是大佬教程为你收集整理的PHP警告:POST内容 – n字节的长度超过第0行中未知的3145728字节的限制全部内容,希望文章能够帮你解决PHP警告:POST内容 – n字节的长度超过第0行中未知的3145728字节的限制所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。