2011-10-09 77 views
21

我想添加恢復功能html5文件上傳。如何恢復在HTML5中斷上傳

我需要能夠在瀏覽器關閉(並重新打開)後恢復,並且我丟失了文件對象,我不希望用戶再次拖動/打開文件。

直到現在我用java小程序來做到這一點,但我希望能夠找到這個問題的html5解決方案。

我想過把文件保存在本地存儲中,但它們太大了。

有沒有辦法只保存文件對象的路徑或任何其他信息,可能會幫助我重新打開文件而不要求用戶重新打開文件?

回答

1

抱歉,這是不可能的。在關閉窗口(當然,關閉瀏覽器時)後,文件和瀏覽器之間的鏈接可以通過javascript(FileURL)訪問。您可以保存文件的名稱和上傳的金額/部分,並要求用戶再次上傳該文件,並從他停止的地方繼續,但不會自動,未經用戶同意。

/編輯:爲什麼反對票?請留下評論,以便我知道我說錯了什麼!問題是關於如何在用戶關閉瀏覽器時恢復上傳。這是不可能的。當瀏覽器保持打開狀態並且連接丟失時,可以停止/恢復上傳,但當用戶關閉瀏覽器(引用丟失)時不可以。然而,您可以將文件複製到temporary filesystem,然後從那裏恢復上傳,但需要用戶同意,並且該文件僅限於用戶供您使用的空間量。

+0

如果用戶再次選擇相同的文件,則可以「恢復」上傳,但是您無法訪問用戶在前一個會話中選擇的文件(即,您不能訪問該文件通過路徑,用戶必須在''中選擇文件或通過拖放操作) – cwa

5

您可能想嘗試Resumable.js - JavaScript Library Providing Multiple Simultaneous, Stable And Resumable Uploads Via The HTML5 File API(或其域名www.resumablejs.com)。

可恢復。 js是一個JavaScript庫,通過HTML5 File API提供多個同步,穩定和可恢復的上傳。

該庫旨在將容錯引入通過HTTP上傳大文件。這是通過將每個文件分成小塊來完成的;每當塊的上傳失敗時,重新上傳直到過程完成。這允許上傳在本地或服務器的網絡連接丟失後自動恢復上傳。此外,它允許用戶暫停並恢復上傳,而不會丟失狀態。

Resumable.js依賴於HTML5 File API和將文件分塊成小塊的功能。目前,這意味着支持僅限於Firefox 4+和Chrome 11+。