2011-01-21 34 views
0

我正在寫一個上傳器,它必須能夠將任何大小的文件(最多30個)傳輸到服務器。當通過AJAX發送文件時,它是否首先被讀入內存?

我的初衷是爲了寫一個Java小程序將打破文件成小塊,把那些到服務器,然後重新組裝他們那裏。

然而,有人認爲AJAX的XMLHttpRequest可以與nsIFileInputStream (例如這裏:https://developer.mozilla.org/en/using_xmlhttprequest#Sending_files_using_a_FormData_object)一起做的工作 和使用PUT而不是POST。

我很擔心2件事,似乎無法找到答案。

1)將AJAX嘗試發送之前將文件讀入到內存(這顯然會打破整個事情)

[編輯] 這http://www.codeproject.com/KB/ajax/AJAXFileUpload.aspx?msg=2329446例如明確指出,他們正在使用的ActiveXObject,因爲那並不是」 T將文件加載到內存中......這向我暗示XMLHttpRequest會將其加載到內存中。我很驚訝我很難找到這個信息,說實話。

2)這種方法有多可靠。我意識到,如果連接剛剛死亡,上傳將不得不從頭開始,但實際上,使用標準的有線連接時,上傳節流大約爲.5MB/s,30 Gig文件到達服務器的可能性有多大?

回答

1

我想類似的東西使用文件阿比blob.slice,但它竟然時鐘內存在較大的文件。但是,你可以使用谷歌齒輪,它與大切片文件更好的發揮。它也不會導致片順序的錯誤,FileReader與XHR組合頻繁且隨機地執行。

然而,我發現(一般)是通過JavaScript上傳文件很不穩定..

+0

是的,我研究這個的越多,我就越是傾向於認爲這不是一個可行的辦法。 – 2011-01-21 21:43:13

相關問題