2010-02-23 100 views
1

對用戶拖放文本文件並將其拖放到瀏覽器上是否有任何反應?如果用戶在加載我的頁面時將文本文件放到瀏覽器中,我希望能夠使用javascript打開文本文件的內容。我不認爲這是可能的,但只是檢查。使用flash或javascript讀取本地文本文件?

是這樣的可能在閃光?

作爲替代,用戶可以指定文件路徑爲我,然後我可以打開文本文件和讀取它。似乎這是一個安全風險,可能不會被允許,但只是檢查。看起來閃光燈10可以這樣嗎?

感謝

回答

1

因爲它違反了瀏覽器的安全模式,您無法讀取使用JavaScript本地文本文件。

+0

這並不完全準確,因爲你可以使用一個AJAX調用試圖通過URI打開任何資源。不過,瀏覽器會根據場上的默認安全設置一個合適的。如果用戶願意,可以選擇允許這種行爲。 – Josh 2010-02-23 19:11:00

+0

@Josh如果用戶確實,他們就會比得到一個txt文件... – Achilles 2010-02-23 19:44:13

+0

真正的大問題,但只是想讓他們知道,這是不可能的。這不是JavaScript的限制,而是瀏覽器中強制執行的安全性。 – Josh 2010-02-23 20:36:08

0

我覺得最後的選擇是可能的。也許你可以從javascript中請求一個文件路徑。你有一些filepickers這(谷歌它)

然後發送TE文件路徑通過期運用ExternalInterface的或Flash變數

閃爍,然後處理文件路徑字符串閃光燈

見:

http://www.republicofcode.com/tutorials/flash/loading_external_text_bc/

+0

現代瀏覽器不會提供''元素的完整文件路徑。換句話說,當你檢查這些元素的「.value」屬性時,你不會得到完整的(或真實的)路徑名。我懷疑你必須通過Flash來完成整個事情。另外,我不認爲你提供的鏈接與加載來自*客戶*機器的內容有關。 – Pointy 2010-02-23 19:11:37

+0

不,我在這裏試過,你只能通過JavaScript在Firefox中獲取文件名。 IE只顯示文件名。也許你在發佈或提交表單時得到它?如果您將該方法上傳到服務器,則可以在鏈接中使用該方法;如果您要使用SWF本地,則也可以使用該方法 – Michel 2010-02-23 19:22:34

+0

再次,出於安全原因,實際的客戶端計算機路徑名對Javascript不可用並且不可用到服務器。所有你可以得到可靠的是路徑的最後部分(文件名,沒有任何目錄)。 IE7可能會給你一切,但它已經壞了。 – Pointy 2010-02-23 19:49:32

0

如果拖動一個文本文件(或圖像,文檔等),並將其放置在打開的瀏覽器,瀏覽器會打開文件進行reading-像文件撰寫命令,它抹了現有文件。

0

的Flash Player瀏覽器插件是絕對不能夠處理的文件拖墜(不像AIR運行時,可以處理它 - 但它是桌面應用程序的問題)。我知道在瀏覽器中完成該操作的唯一方法是使用諸如Google Gears之類的東西。例如,Confluence通過將多個圖像放入瀏覽器窗口來同時上傳多個圖像。

相關問題