我的网站托管服务(Dreamhost)允许我创建一个'phprc'文件并在其中放置自定义变量:
upload_max_filesize = 64M
post_max_size= 64M
max_execution_time = 500
max_input_time = 500
memory_limit = 128M
我确信上面的代码可以正常工作,因为我的phpinfo()文件显示了我希望它们设置的所有变量。
但是,每当我使用$ _POST尝试上传大于1mb的图像(所有文件都是.jpg)时,我都会收到413错误。我在716kb上成功上传的最大文件,虽然我不知道任何大小的失败文件。
我得到的错误:
Request Entity Too Large
The requested resource
/media/function-image-upload.php
does not allow request data with POST requests, or the amount of data provided inthe request exceeds the capacity limit.
我花了很长时间试图解决这个问题,联系支持并做了各种各样的事情。我认为phpinfo()中的其他变量可能有问题。
我不知道该怎么办! :(
答案 0 :(得分:2)
谢谢大家,但似乎这一切都是我的错误。
事实证明,我的主机默认启用了mod_security,这限制了上传到1mb。转过身来,现在一切正常!
为了将来参考,或者如果有人确实遇到这样的问题并最终拖网浏览HOURS无济于事:
关闭MODSECURITY!
特别感谢Ryan Vincent指出它,但我在muhaha之前解决了它:)
答案 1 :(得分:0)
最大文件上传大小是php.ini
中的设置,由upload_max_filesize
标识。
在我的13.10框上执行cat /etc/php5/cli/php.ini | grep -i file_
返回
file_uploads = On
max_file_uploads = 20
upload_max_filesize = 5M //needs to be in {x}M format
托管服务提供商通常会将此设置设置为较低,以降低带宽和存储要求。另外,当你考虑它时,你就会发现异常,因为没有多少人需要将这么大的文件上传到非网络服务,例如Drive或Dropbox。
如果您有权访问php.ini
文件,则修改它很简单。如果您不这样做,那么我建议您将托管计划移至VPS或使用Amazon AWS,linode droplet或heroku dyno。