2010-09-10 36 views
1

我目前正在構建一個旨在處理多個和非常大文件的AIR文件上傳器。我已經玩過各種方法將文件分解成塊(100MB)並逐漸上傳,以便我可以防止上傳/斷開失敗等。AIR/AS3:上傳文件的一部分而不創建新的文件塊

我已經設法在較小的文件中分解文件然後我寫入磁盤上的劃痕區域,但是我發現寫入文件的實際過程非常緩慢,並且咀嚼了很多處理能力。寫作時,我的UI基本上停下來了。更何況我有效地加倍每個文件的本地磁盤空間。

我使用的另一種方法是以100mb的塊讀入原始文件並將該數據存儲在byteArray中,然後我可以使用URLLoader類將其作爲POST數據上載。問題是,這種方式我不能跟蹤上傳進度,因爲ProgressEvent.PROGRESS不適用於POST請求。

我想知道的是,如果可以讀入我的100mb塊中的文件並上傳數據而不必創建新文件,但仍然使用FileReference.upload()方法來聽取所有該方法給我的可用事件。 IE瀏覽器。創建一個由0到100mb原始文件字節組成的File(),然後在該新文件上調用upload()。

如果有幫助,我可以發佈我的兩種方法的代碼。

乾杯,大加讚賞

回答

0

我有這樣的問題,但我們解決它以另一種方式,我們決定寫一個插座連接器,它會連接到服務器(例如FTP/HTTP),並寫下插座這個ByteArray,我們也是以相同大小的塊進行的,而我們必須上傳的最大的文件是BlueRay電影,大約150GB左右。

所以我希望你從我的消息中得到一些有趣的想法,如果你願意,我可以爲你分享一些代碼。

+0

嗯,這是一個聰明的解決方法,因爲我可以看到Socket類調度ProgressEvent。如果你能分享一個例子,那就太好了,乾杯 – 2010-09-13 01:06:03

+0

iam試圖實現目前非常相似的事情。你能發表這個例子嗎? – user151496 2013-08-28 14:46:08