0

このようにFormDataとxmlHTTPRequestを介して大きなファイル(200MB以上)をアップロードしようとしています

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 秒間実行されてから終了します。

4

1 に答える 1

2

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 サーバーを再起動する必要がある場合とそうでない場合があります。

于 2013-06-30T01:41:21.123 に答える