【发布时间】:2012-07-29 03:37:28
【问题描述】:
我很惊讶在我的错误日志中发现了上述错误,因为我认为我已经完成了必要的工作来捕获我的 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;
....
}
}
在我的 PHP.ini 脚本中,相关设置为:
memory_limit = 128M
post_max_size = 3M
upload_max_filesize = 500K
我知道 3M 相当于 3145728 字节,这就是触发错误的原因。如果文件大小在 500k 以上但小于 3M,则 PHP 脚本将能够正常运行,并按照 case 1 在 $msg 中发出错误消息。
当帖子大小超过post_max_size 但仍在内存限制范围内时,我如何捕捉此错误,而不是让脚本突然终止并发出 PHP 警告?我看过类似的问题here、here 和here,但找不到答案。
【问题讨论】:
-
你为什么不把你的函数包装在一个
try..catch块中? -
error_reporting(E_ALL & ~E_WARNING);关闭 PHP 警告。 -
@fdomig 这应该是绝对的最后手段。
-
@fdomig 在生产系统上是的。但现在 OP 正在开发中,此时应该努力避免变通方法。
-
@MichaelRobinson 一个解决方案是为您自己的错误处理程序提供如下内容:stackoverflow.com/a/1241751/246051
标签: php