2013-05-19 50 views
2

所以我一直在尋找一個解決方案在我的網站實現,允許上傳多個文件和大文件(> 2 GB),無需使用任何插件,桌面客戶端等等。我還需要支持早於IE 7的瀏覽器。FineUploader似乎完全適合這個法案,但我一直在試圖弄清楚的一個方面是它如何使用iframe來支持非HTML5瀏覽器?它是否基本上提供了HTML內容,因此它仍允許用戶上傳文件,但具有傳統限制(一次只能有一個文件,無法在上傳之前讀取文件大小等)?非HTML5瀏覽器會丟失FineUploader的哪些功能?fineuploader iframe的功能(IE7-9)

感謝, 斯塔斯

回答

1

我沒事上傳的維護者,我會提供一個答案,你的問題。

對於不支持File API(IE9及更高版本,Android 2.3.x)的瀏覽器,Fine Uploader必須依賴衆所周知的「技巧」來允許「ajax」上傳。在這些瀏覽器中,您必須提交包含文件輸入元素的表單(每個文件一個)。 Fine Uploader創建一個隱藏的iframe,其中包含關聯文件的表單和文件輸入。爲每個選定的文件創建一個單獨的iframe。 Fine Uploader會在上傳相關文件或文件時提交表單。當收到服務器響應時,服務器的響應文本將被加載到此iframe中,並且庫解析此響應(無論瀏覽器如何,該響應都必須是有效的JSON響應)。

以下限制在非文件API瀏覽器的地方:

  • 只能選擇在同一時間(每個「選擇文件」對話框中的一個)一個文件。這是因爲這些瀏覽器都不支持文件輸入元素上的multiple屬性。
  • 不支持拖放文件。此功能取決於File API支持。
  • 進度條並未出現,因爲沒有簡單的方法可以確定瀏覽器中不支持File API的文件上傳進度。未來可能會有一些努力來進行計算,例如記錄在案的約定,這些約定會導致週期性GET請求檢查進度,或支持nginx或apache中的UploadProgress模塊​​。
  • 客戶端文件大小信息不可用。所以,沒有啓用任何與文件大小有關或依賴於文件大小的功能。除非瀏覽器支持File API,否則此信息根本不可用。
  • 分塊和自動恢復功能未啓用,因爲它明確依賴於File API支持。

幸運的是,所有「現代」瀏覽器(包括IE10)都支持File API。

希望這會有所幫助。

+0

是的,這正是我正在尋找的信息,並且非常有意義。謝謝! –