超过1.5GB时,JQuery文件上传到NGINX/PHP服务器失败
我正在使用JQuery文件上传将大文件上传到带有PHP后端的NGINX服务器。上载适用于2GB及以下的文件,但6或8GB左右的较大文件会到达末尾,但会显示以下错误消息超过1.5GB时,JQuery文件上传到NGINX/PHP服务器失败,php,jquery,file-upload,nginx,jquery-file-upload,Php,Jquery,File Upload,Nginx,Jquery File Upload,我正在使用JQuery文件上传将大文件上传到带有PHP后端的NGINX服务器。上载适用于2GB及以下的文件,但6或8GB左右的较大文件会到达末尾,但会显示以下错误消息 The uploaded file was only partially uploaded 我已经更新了我的nginx.conf: http { sendfile on; keepalive_timeout 65; server { ...
The uploaded file was only partially uploaded
我已经更新了我的nginx.conf:
http {
sendfile on;
keepalive_timeout 65;
server {
...
client_max_body_size 20000000M;
...
}
}
以及php fpm的my php.ini:
memory_limit = 512000000M
upload_max_filesize = 0
post_max_size = 200000M
max_execution_time = 4320000
max_input_time = 4320000
在所有情况下,文件上载都需要不到一小时的时间才能完成
以下是Chrome的Inspect Element输出:
这与php.ini或jquery上传程序无关 只需密切监视您的系统资源即可接近解决方案:
除了这些可能性之外,还要检查您的主机/环境是否会截断长POST请求(按传输的时间或数据量)在上载大小超过2gb的文件时,PHP 5.3中存在问题。如果我没有弄错的话,它是在PHP5.4中解决的。您是否尝试过使用普通表单上传文件? 例如:
文件名:
此外,我会尝试在本地设置nginx服务器,以缩短上传时间。如果仍然失败,您可以排除超时,甚至文件系统/磁盘问题。谢谢prady,服务器资源很好。我可能会尝试更改tmp文件夹,但奇怪的是,它适用于1.6GBDo timeout和keepalive_timeout设置大小的文件,从而影响较大的上载?是的,他们确实尝试将其设置为-1;)HןBen我怀疑你的php.ini设置-你能描述一下你使用的是哪台服务器吗?尝试向所有关键设置添加ini get,以确保在上载开始之前服务器遵循这些设置。还可以尝试在文件上载之前使用
ini\u set()
,并取消session.gc\u maxlifetime
,session.cookie\u lifetime
,session.cache\u expire
的限制。最后一件事是尝试设置一个限制为upload\u max\u filesize
,这个限制不是无限的。我使用的是带有php fpm的NGINX服务器@ShlomiHassidI已经在ini_集合中添加了('session.gc_maxlifest',9999999999);ini_集('session.cookie_life',9999999999);ini_集('session.cache_expire',9999999999);并将upload_max_filesize设置为500000000M,但会看到相同的错误。真奇怪,在开发过程中如何在不等待数小时的情况下准确测试2.0 GB文件上载?我正在服务器上运行PHP5.4.25。
<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>