我正在使用Kohana框架构建应用程序。图片上传是其中的一部分。当我尝试上传超过最大文件大小(20M)的文件时,我收到一条PHP警告消息,而不是我的验证消息或Kohana的错误处理程序。
警告:POST内容长度26871468字节超过了第0行的Unknown中的20971520字节限制
这是我的验证码:
$validate = Validation::factory($files);
$validate
->rule('photo', 'Upload::not_empty', array($files['photo']))
->rule('photo', 'Upload::valid')
->rule('photo', 'Upload::size', array($files['photo'], '10M'))
->rule('photo', 'Upload::type', array($files['photo'], array('jpg', 'png', 'gif')));
if ($validate->check())
{
Upload::save($files['photo'], 'test.jpg', 'uploads');
}
这个警告比我从MVC访问的任何东西都要高得多。我该如何拦截此错误? (显然当应用程序在线时,PHP警告不会显示给用户,但在开发期间我需要警告。)
答案 0 :(得分:1)
在验证文件之前,必须将其加载到服务器。并且因为该文件很大,所以从服务器收到错误。
答案 1 :(得分:0)
我根本不确定,只是想尝试一下,可能想把它们分开:
$validate
->rule('photo', 'Upload::not_empty', array($files['photo']);
$validate->rule('photo', 'Upload::valid');
$validate->rule('photo', 'Upload::size', array($files['photo'], '10M');
$validate->rule('photo', 'Upload::type', array($files['photo'], array('jpg', 'png', 'gif');
因为它似乎只是忽略了所有的验证,可能因为这个,我不确定。