我知道这方面已经有很多问题了,但是我已经按照所有的问题进行了操作,却找不到任何关于如何进一步调试此问题的信息。
我可以完全上传一个 490 MB 的文件。但我无法上传 562.8 MB 的文件。
我正在运行 php 7.0.11 with fpm, nginx 1.11.3, ubuntu 16,并使用 Laravel 5.1
我的 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。我不知道这是true还是相关错误消息中的1。php文档将1的错误消息列在文档中:
上传的文件超过了php.ini中的upload_max_filesize指令。
但以下两个条件都满足:
echo phpinfo();
echo ini_get('upload_max_filesize');
显示1GB,因此文件不应超过1GB,因为它只有562.8MB。
没有进一步的错误信息,并且我已经按照在Google上找到的每个指令和指南进行操作,但我完全不知道可能是什么问题。
我也在使用Cloudflare,但它已关闭此子域名的限制,而Cloudflare的限制是100MB而不是500MB,因此我认为这与Cloudflare无关。
是否有任何方法可以进一步调试?我现在完全不知所措。
ini_get('upload_max_filesize')
,那么肯定是使用的php.ini设置。 - John Mellorini_get
是否在处理上传的同一脚本中运行? - apokryfosvar_dump($_FILES)
,对吧?据我所知,对于仍在处理php的文件,没有超时时间。 - John Mellor