2014-03-12 110 views
2

我使用JQuery File Upload将大文件上传到具有PHP后端的NGINX服务器。上传作品的文件备份到和周围2GB而是围绕6大文件或8GB到达终点,但显示以下错误消息当超过1.5GB时,JQuery文件上传到NGINX/PHP服务器失败

The uploaded file was only partially uploaded 

enter image description here

我已经更新了我的nginx.conf:

http { 
     sendfile   on; 
     keepalive_timeout 65; 

     server { 
... 
       client_max_body_size 20000000M; 

... 
     } 
} 

而且我对PHP-FPM的php.ini:

memory_limit = 512000000M 

upload_max_filesize = 0 

post_max_size = 200000M 

max_execution_time = 4320000 

max_input_time = 4320000 

文件uplo广告在一个小时内完成所有情况。

这里是Chrome的检查单元输出

enter image description here

enter image description here

enter image description here

+0

H笨Ben我怀疑你的php.ini设置 - 你能描述一下你使用CMS的服务器吗?尝试添加一个ini以获得所有关键设置,以确保在上传开始之前它们紧随您的服务器。 –

+0

也可以在文件上传前尝试使用'ini_set()',并减小'session.gc_maxlifetime','session.cookie_lifetime','session.cache_expire'的限制。最后一件事情是尝试对“upload_max_filesize”设置一个非限制性的限制。 –

+0

我用php-fpm使用NGINX服务器。 @ShlomiHassid – Ben

回答

0

这是无关的php.ini或jquery的上传。

只需密切监控您的系统资源,以获得接近解决方案:

  1. 上传的文件保存在临时文件夹(密切监测这一点)。
  2. 您的系统RAM资源。
  3. 您的系统存储容量。

除了这些准备,检查,如果你的主机/环境截断长POST请求(按时间或行驶数据量)

+0

感谢prady服务器资源很好。我可能会尝试更改tmp文件夹,但奇怪的是它适用于大小为1.6GB的文件 – Ben

+0

超时和keepalive_timeout设置是否会影响大量上传? – Ben

+0

是的,他们确实让他们-1;) – prady00

0

有问题PHP 5.3,同时上传,大小超过2GB的文件。如果我没有弄错,它在PHP 5.4中解决。

+0

我在服务器上运行PHP 5.4.25。 – Ben

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的本地服务器,以减少上传时间。如果仍然失败,您可以排除超时甚至文件系统/磁盘问题。

相关问题