我们正在制作一个表单来上传Laravel 4中的一些文件,我们拥有的上传档案相当大,最高可达500MB左右。
我希望我们的系统在POST大小超过 post_max_size 中设置的大小时抛出异常,但是我们看到PHP设置的变量{{1}而不是PHP抛出异常。并且应用程序继续,没有任何$php_errormsg
数据。
有没有办法配置PHP自动为这种错误抛出异常,或者我需要编写一些逻辑检查,例如$ php_errormsg等的存在。
我认为这是一种相当奇怪的方式来处理这种错误。为什么偏离标准PHP异常?
我做的另一个观察是$ php_errormsg变量仅在我在index.php中检查它时才存在,在初始应用程序入口点,但是当Laravel 4到达控制器动作时,根本没有任何概念出错了,$ php_errormsg丢失了,并且没有抛出Exception,并且因为$_POST
被淘汰,我们得到了缺少必填字段而不是实际字段的验证错误:
POST内容 - x字节的长度超过x的限制 字节
答案 0 :(得分:0)
在我的控制器中添加以下代码:
global $php_errormsg;
if (!is_null($php_errormsg)) {
throw new Exception($php_errormsg);
}
我可以适当地显示错误,并通过向用户显示正确的错误消息来处理错误。