我正在使用JQuery File Upload将大文件上传到带有PHP后端的NGINX服务器。上传适用于最大2GB左右的文件,但大约6或8GB的较大文件到达最后但显示以下错误消息
The uploaded file was only partially uploaded
我已经更新了我的nginx.conf:
http {
sendfile on;
keepalive_timeout 65;
server {
...
client_max_body_size 20000000M;
...
}
}
我的php.ini for php-fpm:
memory_limit = 512000000M
upload_max_filesize = 0
post_max_size = 200000M
max_execution_time = 4320000
max_input_time = 4320000
在所有情况下,文件上传都需要一个小时才能完成。
这是Chrome的Inspect Element输出:
答案 0 :(得分:0)
这与php.ini或jquery uploader无关。
只需密切监控您的系统资源即可接近解决方案:
除了这些可能性之外,请检查您的主机/环境是否截断长POST请求(按时间或行进的数据量)
答案 1 :(得分:0)
在上传大小超过2GB的文件时,PHP 5.3中存在问题。如果我没有弄错的话,它在PHP 5.4中得到了解决。
答案 2 :(得分:0)
您是否尝试使用普通表单上传文件? 例如:
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
另外,我会尝试在本地设置nginx服务器以减少上传时间。如果它仍然失败,您可以排除超时甚至文件系统/磁盘问题。