2010-08-09 30 views
0

我知道獲取本地文件的內容並將這些字節推送到服務器的唯一方法是設置一個帶有適當類型的<input>的表單帖子,以提示用戶選擇文件。Javascript中的文件內容在瀏覽器中

我想做同樣的事情只通過XMLHttpRequest(沒有交叉腳本技巧)推送數據。

目前,我們使用iframe來獲取發佈行爲。

我的感覺是iframe是唯一的解決方案,但我張貼在這裏萬一我錯過了一些東西。

+0

你想支持哪些瀏覽器,或者你能限制哪些瀏覽器支持? – 2010-08-09 17:40:45

+0

最近的瀏覽器。至少Chrome和FF。有些IE可能會有所幫助,但即使將它從考慮中排除,我也對這些選項感興趣。 – bmargulies 2010-08-09 17:52:24

回答

1

您可以使用JavaScript文件API(可在Firefox 3.6或更高版本以及Chrome和Safari的最新版本中使用)。基本上,您可以將一個事件偵聽器添加到<input>標記中,當用戶選擇文件時將觸發該標記。然後,你可以使用XMLHttpRequest來上傳它。此外,File API還允許您執行其他花哨的操作,例如拖放上傳,在將文件發送到服務器之前獲取有關文件的信息,以及在文件上傳時提供進度欄。
更多信息:https://developer.mozilla.org/en/using_files_from_web_applications

這不是一個很好的跨瀏覽器的解決方案,因爲它並沒有在所有流行的瀏覽器很好的支持(的Internet Explorer),但你可以使用功能檢測,在JavaScript中檢測是否File API可用,如果不是,則返回到iframe方法。

相關問題