找到一个不直接处理错误的替代解决方案.以下代码由软件工程师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.';
}
如他的文章中所解释的,当post的大小超过post_max_size时,$_POST和$_FILES的超级全局数组将变为空.因此,通过测试这些并通过确认使用POST方法发送一些内容,可以推断出发生了这样的错误.
实际上有一个类似的问题here,我以前没有找到.