【发布时间】:2014-03-21 07:53:19
【问题描述】:
我在尝试上传太大的文件时遇到以下 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 中的“假”返回作为文件上传错误处理,因为从技术上讲,这可能是由任何服务器错误产生的。
编辑;澄清一下,因为我收到的代码请求不会对任何事情产生任何影响(我只能假设这个问题被误解了):
如果文件介于 10mb(CI 设置的限制)和 32mb(post_max_size 设置的限制)之间,一切正常 - 没有代码问题。但是如果文件大于 32mb,PHP 会在 CI 解析文件之前捕获文件并为我提供适当的错误,所以我没有机会正确标记大文件,除非我将 post_max_size 设为无限大 - 这似乎既危险又存在缺陷。我想知道是否有办法解决这个问题。理想情况下,在 CI 验证之前我不需要服务器参与,因为我宁愿标记一个用户友好的错误,而不是 POST 就死了。
【问题讨论】:
-
你为什么不通过增加 php ini 的大小来尝试一下
-
因为我不希望用户能够上传更大的文件?除非我可以将其设置为“无限”,否则无法解决问题。
-
请出示您的上传代码。
-
嗨,Sena,我不确定我可以向您展示什么感兴趣的内容。这是一个通过 ajax 运行的非常标准的 CI 上传。问题是 ajax 只是得到一个“假”返回,因为 PHP 在上传代码甚至有机会运行之前就产生了一个错误。所以我无法得到“max_size”错误,因为用户总是可以尝试上传大于 post_max_size 的文件(不管设置什么,用户总是可以尝试上传一个大文件)。
-
您可以证明您正在正确加载配置等。我不明白为什么人们拒绝展示他们想要帮助的代码......
标签: php codeigniter