2010-02-03 43 views
5

我一直在使用flex上傳器,用戶可以在其中選擇多個文件。使用Flex同時上傳多個文件

當文件上傳到一個隊列(一次一個)時工作正常,但是一旦我嘗試讓它一次上傳2個文件,我就會遇到問題。

似乎文件通常會鎖定,並保持在1%,直到其他文件上傳,或根本沒有完成。一次最多隻能上傳一個文件。

在Flex中一次調用多個文件的.upload是否存在一些問題?

+0

check [** here **](http://bytearray.brixtonjunkies.com/2009/10/01/flex-multiple-file-uploader/), 也是[** example **] (http://bytearray.brixtonjunkies.com/wp-content/uploads/uploader/FlexUploaderExample.html) – 2010-08-02 06:28:43

回答

0

我沒有直接回答你的問題,但想到了Gmail上傳。它使用swfupload(更新的link),它是開源的,所以你可以從源代碼中找出它。

還有更多的信息在這answer

2

不幸的是,每個主機的瀏覽器限制爲2(取決於瀏覽器)活動連接。這意味着一次只有兩個上傳文件處於活動狀態,另一個上傳文件將排隊等候。現在這通常不是真正的問題,但是當上傳的文件很大時,其他上傳將會超時,即使它們沒有啓動。每兩次上傳(upl1.mydomain.com,upl2.mydomain.com)使用子域名時都有一個解決方法,我沒有去測試,但它應該可以做到。

參考文獻:http://anirudhs.chaosnet.org/blog/2008.06.17.htmlhttp://www.ajaxperformance.com/2006/12/18/circumventing-browser-connection-limits-for-fun-and-profit/(您可以從第一個鏈接實際得到)。

此外,您可能無法將上傳列入隊列中,因爲安全模型需要通過鼠標單擊來調用(FileReference的)上傳方法。

+0

哇,非常有趣的文章。我不知道今天仍然在瀏覽器上這樣的限制... 至於把文件放入隊列,這似乎通過循環FileReferenceList工作正常。 – David 2010-02-04 13:27:49

+0

更新︰我做了一些戳,並且Firefox 3.0 +的默認連接限制是6.因爲我一直在使用Firefox 3.5進行測試(並且我雙重檢查了about:config,連接限制爲6),我再次不確定問題是什麼。 – David 2010-02-04 13:39:48

+0

是的,新一代瀏覽器似乎有一個最大連接數限制爲6.我已將該數字更改爲8,並沒有設法上傳超過4個。無論是在IE和Firefox,所以我認爲有一個進一步限制了操作系統。此外,最初,在Firefox上,我只有兩個上傳活動,默認值爲6.可能是一個錯誤? – 2010-02-04 14:28:43

0

另一種模擬多任務的方式是通過塊下載/上傳並使用callLater()來執行順序執行。 這將是早期Windows協作式多任務處理的複製

0

問題出在Flex連接到後端的模型。通過HttpService和Remoting,Flex客戶端打開一個到服務器的Http連接。如果連接到服務器上的相同Servlet /服務,它將使用相同的連接並可能遇到問題。

對於簡單的測試,請嘗試創建兩個相同servlet的實例,並向2個servlet發送上傳請求以進行2次上傳。它應該工作。

0

使上傳腳本作爲上傳類可能會有所幫助..我的意思是,如果您的上傳腳本是在PHP或ASP然後使該腳本的類,以便每個請求對應於每個獨特的對象,我們可以同時上傳文件.. 。