目标
当他们尝试上传的文件太大时,我想向我的客户显示有意义的消息。
问题
现在mod_fcgid
,当我尝试发送太大的请求时,我会抛出 500 Internal Server Error。我不知道如何从以下内容中分辨出此错误:
- PHP错误时
display_errors
设置为 0 - 请求 uri 太长
- 错误的重写规则
- 其他不良配置
- 完全不同的东西
如果我要在 500 ISE 处理程序中告诉我的客户“嘿,你试图上传太大的文件”,它也会触发以上所有内容,这是没有意义的。
我尝试过的事情
我目前唯一能做的就是使用ErrorDocument 500 /generic-500.php
. 倾倒$_SERVER
并$_REQUEST
没有显示任何有用的东西。
我可以通过以下方式以丑陋的方式绕过问题:
- 在表单上创建 AJAX 包装器
- 使它单独为这个表单附加自定义标题
- 当我被重定向到 500 ISE 时检查此标头
但这很愚蠢,我必须记住为每个上传表单都这样做。
问题
如何在 PHP 中检测 500 ISE 的原因或重新配置我的服务器,以便在收到 POST 请求时检测到 PHP 中的上传过大?