2016-10-10 18 views
3

私はちょうどこの質問を具体的に説明したい:How does HTTP file upload work?。これは質問の形式です:大容量ファイルのHTTPファイルアップロードはどのように機能しますか?

<form enctype="multipart/form-data" action="http://localhost:3000/upload?upload_progress_id=12344" method="POST"> 
<input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 
Choose a file to upload: <input name="uploadedfile" type="file" /><br /> 
<input type="submit" value="Upload File" /> 
</form> 

ファイルが実際に大きい(10GBなど)場合はどうなりますか?ブラウザはすべてのデータを1リクエストに入れてサーバーに送信しますか? 2 GBのRAMしか搭載していない場合、ブラウザーはどのようにファイルを読み取り、要求を構築しますか?

ファイルがCSVであるとしましょう。サーバーにRAMとディスクのスペースがほとんどないと仮定します。サーバーがファイルをRAMまたはディスクに保存する代わりに、各行を解析できるように、サーバーにファイルをストリーミングする方法はありますか?

詳細な説明がはるかにあなたがここにいくつかの詳細を見つけることができます

答えて

0

(HTTP、TCPなど)感謝されています。一言で言えば

Large file upload though html form (more than 2 GB)

を、リモートHTTPサーバは、最大値を決定するものですHTTP POSTのサイズ設定されている最大サイズより大きいものは、エラーが発生します。

独自のソリューションを開発することはオプションです。あなたの大規模なCSVファイルの例では、ファイルの1行を送信するHTTP POSTを想像してください。 100行には100のHTTP POSTが必要です。

大きな欠点は、HTMLフォームを直接使用できないことです。おそらく、JavaScriptは、このようなこの記事のバリエーションとして、あなたのための記事を扱うことができる:

How to upload string as file with jQuery or other js framework

を順序が重要な場合は、両側に行うにはいくつかの仕事を持っているでしょう(つまり一部としてシーケンス番号のいくつかの並べ替えを送りますフォームデータの)。

これを達成する他の方法があります。しかし、うまくいけば、上記の提案はあなたに考えさせるでしょう。

関連する問題