2016-03-29 86 views
0

我正在嘗試爲大文件實現一個上傳例程,爲此,我將該文件分塊,然後通過塊向服務器發送塊。

現在爲了識別大塊部分,我試圖發送比FormData中的純文件部分更多的信息。

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); 

在PHP端的chunkpart在然而$_FILESchunkNumber, maxChunksfileID和發現在$_POST中找到。

我在這裏的問題:我做錯了什麼,或者我誤解了FormData如何工作,我怎麼能像我預期的那樣工作?

+0

你誤會了FormData的工作方式。爲什麼你需要'$ _FILES'中的數據?從$ _POST'讀取它有什麼問題? – Quentin

+0

@Quentin在Michael Fromin的回答中看到評論 –

回答

0

這只是發佈的內容如何與BLOB數據一起使用。它會作爲「文件」上傳到多部分表單文章中。在PHP中,這種類型的表單數據位於$ _FILES變量中,而不是$ _POST。

是否有某些原因導致您無法從$ _POST和$ _FILES中獲取數據?我在處理髮布包含文件/圖像的表單內容時經常這樣做。

+0

我可以抓住兩者,但我試圖理解爲什麼它不能按預期工作。所以我問我是否誤解了任何東西。只是看看[這裏](https://developer.mozilla.org/en-US/docs/Web/API/FormData/append),看到它們附加了鍵/值對,所以我認爲它是如何工作的;) –

相關問題