Попытка загрузить большой файл из formData

Я пытаюсь загрузить большой файл (более 200 МБ) через FormData и xmlHTTPRequest следующим образом.

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 секунд, а затем завершается.


person user2112300    schedule 29.06.2013    source источник
comment
Вы сказали, что все настройки в PHP.ini имеют максимальные значения, но как мы узнаем, что вы установили правильные настройки? Опубликуйте свои настройки php.ini, которые вы изменили.   -  person Panama Jack    schedule 30.06.2013


Ответы (1)


Не видя ваш файл php.ini, это вещи, которые повлияют на загрузку, и вам нужно изменить их соответствующим образом.

file_uploads
upload_max_filesize
max_input_time
memory_limit
max_execution_time 
post_max_size

Все эти настройки должны иметь достаточно высокие значения для больших файлов. Будьте осторожны, чтобы не сделать ваш memory_limit слишком большим, что может быть опасно. Я бы, возможно, сделал 128MB. max_execution_time многими забыто и по умолчанию 30 сек. Недостаточно долго для больших файлов. Я установил свой на 1000, так как я обрабатываю большие видео. Это распространенная причина, по которой сценарий не завершается и завершается преждевременно. Вам может потребоваться перезапустить веб-сервер, а может и не потребоваться.

person Panama Jack    schedule 30.06.2013