2016-03-29 10 views
0

私は巨大なファイルのアップロードルーチンを実装しようとしています。このために、私はファイルをチャンクしています。

ここでチャンク部分を特定するために、私はFormDataの純粋なファイル部分よりも多くの情報を送信しようとしています。 PHP側で

var xhr = new XMLHttpRequest(); 
xhr.open("POST", 'upload.php', true); 

var formData = new FormData(); 
formData.append("chunkpart", blob); // blob is Blob() or BlobBuilder 
formData.append("chunkNumber", sendCount); // sendCount is an integer 
formData.append("maxChunks", Math.ceil(maxChunks)); // maxChunks is a floatingpoint 
formData.append("fileID", fileID); // fileID is an almost unique string 
xhr.send(formData); 

chunkpart$_FILESしかしながらchunkNumber, maxChunksfileIDに見出される$_POSTに見出されます。

ここに私の質問:私は何か間違っていますか、私はちょうどどのように誤解しましたFormDataと私は期待どおりに動作させることができますか?

+0

FormDataがどのように機能するか誤解しています。なぜあなたは '$ _FILES'にデータが必要ですか? '$ _POST'からそれを読んで何が問題になっていますか? – Quentin

+0

@Quentin Michael Frominの回答 –

答えて

0

これは、投稿されたコンテンツがBLOBデータでどのように機能するかを示しています。マルチパートフォームの投稿に「ファイル」としてアップロードされます。 PHPでは、このタイプのフォームデータは$ _POSTではなく、$ _FILES変数にあります。

$ _POSTと$ _FILESの両方からデータを取得できない理由はありますか?私はファイル/画像を含む投稿コンテンツを処理するときに定期的にそれを行います。

+0

私はもちろん両者をつかむことができますが、なぜそれが期待どおりに動作しないのか理解しようとしました。だから私は何かを誤解したかどうか尋ねた。 (https://developer.mozilla.org/en-US/docs/Web/API/FormData/append)を見て、それらがキー/値のペアを追加するのを見て、どのように動作するかを考えました;) –