有沒有辦法排隊文件上傳,而不訴諸於Flash或Silverlight,只是使用巧妙使用的形式和JavaScript?請注意,上傳應該異步執行。排隊異步HTTP文件上傳
通過「排隊」上傳我的意思是,如果用戶試圖上傳多個文件,則不應該在單個HTTP連接中同時傳輸它們,而應該一次傳輸一個文件。
有沒有辦法排隊文件上傳,而不訴諸於Flash或Silverlight,只是使用巧妙使用的形式和JavaScript?請注意,上傳應該異步執行。排隊異步HTTP文件上傳
通過「排隊」上傳我的意思是,如果用戶試圖上傳多個文件,則不應該在單個HTTP連接中同時傳輸它們,而應該一次傳輸一個文件。
由於規範的限制,我不認爲可以在單個HTTP連接上執行此操作。 但是,通過將<input>
字段放在單獨的表單中(無論是HTML還是JavaScript)並按順序提交它們,您可能會獲得幾乎相同的行爲。
將它們的目標放置在上,並使用iframe.onload
事件觸發列表中的下一個表單。
其他備註:
讓我知道它是否適合你。我曾想過嘗試像這樣的事情,但沒有時間。 – Kivin
我以前見過的一個選項,雖然我沒有鏈接或示例,但使用的是iframe。基本上,這些文件被提交給iframe和JavaScript手錶,以查看該iframe何時重新加載,然後提交下一個。這不是很好,我想我嘗試過,但無法跨瀏覽器使用它(當時我需要它,包括IE6)。
好的,謝謝。我會盡力實施它。你還記得你遇到過哪些瀏覽器嗎? – dpq
我相信最困難的一個是IE6以及其他IE,但我認爲7&8是沒問題的。這是一段時間,我已經刪除了所有的測試代碼,因爲我可以使用Flash,因爲它已經在網站上的其他地方使用過了。 –
廣義看着它,什麼需要做:
這是我現在可以考慮的簡單邏輯[當我回家時必須編碼]。
如果您正在尋找.Net和更具體的Asp.Net MVC解決方案,請看這篇文章http://dimebrain.com/2010/01/large-or-asynchronous-file-uploads-in-asp-net-mvc.html。我已將它加入書籤以供參考。
這個jQuery插件聲稱它不使用SWF http://valums.com/ajax-upload/
有asyncronysly上傳文件使用XMLHttpRequest的一個簡單efficent方式:指https://developer.mozilla.org/en/using_xmlhttprequest了「在Firefox 3.5及更高版本」部分。有了這個,你可以上傳文件asyncronysly獲得進度百分比的上傳。隨着Firefox 3.6和更高版本,你也可以異步上傳多個文件。我以更簡單的方式製作js函數,完成後我會發布它。
最近我寫了一個jQuery插件,可以讓你做這樣的事情。我無法發佈代碼,但我可以描述它是如何工作的。如果沒有意義,讓我知道,因爲它已經有一段時間了。有一組上傳表單元素。當一個文件被選中時,它會發布到一個隱藏的iFrame中,其內容(通過base64)被複制到一個隱藏的表單域中。然後,當提交最終表單時,隱藏表單域的內容將用於獲取文件信息。
Erick
它是否必須是一個HTTP連接? –
是的。這是我的問題點。 – dpq
問題:如果你提交一個包含多個文件的表單,它們是同時發送還是一個接一個發送? –