我已经意识到这方面已经有很多问题,但是我已经跟踪了所有这些问题,并且无法找到有关如何进一步调试此功能的任何信息。
我可以上传490 MB的文件,绝对没问题。我无法上传562.8 MB的文件。
我使用fpm,nginx 1.11.3,ubuntu 16和使用Laravel 5.1运行php 7.0.11
我的php ini设置是:
upload_max_filesize 1GB
post_max_size 1GB
memory_limit 1GB(实际上不应该这样,但我还是试过了)
我的nginx设置:
client_max_body_size 1G
我还没有发现任何其他需要更改或可能会干扰的变量的引用。
当我上传$_FILES
时,似乎是:
["file"]=>
array(5) {
["name"]=> string(36) "CSBgGvDIAaZtbC4lmliLevHf0bAnWiKM.rar"
["type"]=> string(0) ""
["tmp_name"]=> string(0) ""
["error"]=> int(1)
["size"]=> int(0)
}
我的nginx或php错误日志中没有任何内容。
$_SERVER['content_length']
是652844444,这是文件的正确长度。
'error'
列为1.我不知道这是1还是1,或者相关错误消息中的1。 php文档在文档中列出1的错误消息:
上传的文件超过了php.ini中的upload_max_filesize指令。
但两者都是:
echo phpinfo();
echo ini_get('upload_max_filesize');
显示1GB,因此文件不应超过它,因为它的数量为562.8 MB。
没有进一步的错误消息,并且已经按照每条指令和指南进行操作,我可以在Google上找到完全丢失的信息。
我也在使用Cloudflare,但是这个子域已关闭,Cloudflare的限制是100MB而不是500MB所以我不认为它与此有任何关系。
有没有办法进一步调试这个?在这一点上,我完全失去了。
答案 0 :(得分:0)
您使用的是云/托管服务器吗?许多托管服务器对最大文件上载有严格限制,即使使用ini文件也不允许覆盖它们。如果您使用的是托管服务器,则可能需要联系您的托管服务提供商以覆盖您的限制。
答案 1 :(得分:0)
所以我解决了这个问题。真的很烦人。问题是我在php.ini中键入1GB而不是1G。没有给出错误消息,并且根本不清楚它没有使用1千兆字节。但是如果没有B,php.ini将无法识别1KB,1MB或1GB等内容。
经验教训,浪费了很多时间。