2013-06-29 64 views
0

我想上传大文件(超过200MB),通过FORMDATA和XMLHttpRequest的这样试图从FORMDATA上传大文件

var fd = new FormData; 
fd.append('files[]', file); 

xmlHttpRequest.open("POST", url, true); 
xmlHttpRequest.send(fd); 
在PHP脚本

我有

<?php 
var_dump("IN"); 
var_dump($_FILES); 

出来:

IN 
array() 

请求等待10秒钟并完成。小文件都很好,没有FormData(简单的ajax)都很好。 php.ini中的所有设置都具有最大值。怎么了?

如果它可以帮助,这是我的请求头:

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Encoding gzip, deflate 
Accept-Language ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 
Cache-Control no-cache 
Content-Length 294561150 
Content-Type multipart/form-data 
Host test1 
Referer http://test1/ 
User-Agen Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0 
X-Requested-With XMLHttpRequest 

响应头:

Connection close 
Content-Encodin gzip 
Content-Length 51 
Content-Type text/html 
Date Sat, 29 Jun 2013 23:03:26 GMT 
Server Apache/2.2.22 (Ubuntu) 
Vary Accept-Encoding 
X-Powered-By PHP/5.4.17RC1 

我/etc/php5/apache2/php.ini:

file_uploads = On 
upload_max_filesize = 512M 
max_file_uploads = 20 
max_input_time = 10000 
memory_limit = 2048M 
max_execution_time = 10000 
post_max_size = 1024M 

我的脚本链接:http://www.megafileupload.com/en/file/430866/test1-tar-gz.html

PS全时间运行10秒然后完成。

+0

您说过PHP.ini中的所有设置都有最大值,但我们如何知道您设置了正确的设置?发布您更改的php.ini设置。 –

回答

1

没有看到你的php.ini文件,这些事情会影响上传和需要相应地改变他们

file_uploads 
upload_max_filesize 
max_input_time 
memory_limit 
max_execution_time 
post_max_size 

所有这些设置都具有较大的文件相当高的设置。小心不要让你的memory_limit太高,这可能是危险的。我可能会做128MBmax_execution_time被许多人遗忘,默认值为30秒。没有足够的大文件。自从我处理大型视频后,我将其设置为1000。这是脚本没有完成并且会过早完成的常见原因。您可能需要也可能不需要重新启动Web服务器。