尝试上传过大的文件时,我收到以下PHP错误:
POST Content-Length of 1034425027 bytes exceeds the limit of 33554432 bytes in Unknown
但我的控制器中有以下设置:
$config['max_size'] = '10000';
我看到的所有解决方案都涉及增加post_max_size
等...但我不想允许上传更大的文件 - 我想要一个错误,只是CI一个,而不是一个PHP我不能做任何事情
有什么想法吗?这只是PHP的一个缺陷吗?我宁愿不将ajax中的'false'返回作为文件上传错误处理,因为技术上可以从任何服务器错误中产生。
EDIT;澄清一下,因为我收到的代码请求不会对任何事情有所了解(我只能假设这个问题被误解了):
如果文件介于10mb(CI设置的限制)和32mb(post_max_size设置的限制)之间,一切正常 - 没有代码问题。但是如果文件大于32mb,PHP会在CI解析它并提供正确错误之前捕获该文件,因此我没有机会正确标记大文件,除非我使post_max_size无限大 - 这似乎既危险又有缺陷。我想知道是否有办法解决这个问题。理想情况下,在CI验证之前我不需要服务器参与,因为我宁愿标记一个用户友好的错误而不是POST就死了。
答案 0 :(得分:1)
最好的办法是在尝试上传前用js [1]检查文件大小。除此之外,唯一的选择是增加帖子大小或创建自己的错误处理[2]。
[1] https://stackoverflow.com/a/7497439/183254
[2] http://www.php.net/manual/en/function.set-error-handler.php / https://stackoverflow.com/a/11745361/183254
答案 1 :(得分:0)
首先增加php.ini中的大小,即upload_max_size。默认情况下,PHP设置将通过php代码读取,然后是codeigniter设置。所以从.ini文件增加大小。