2012-03-27 76 views
3

背景:(在火焰之前讀取...)如何通過Javascript或Jquery將本地文件讀入網頁?

我想讓用戶能夠從HTML「文件輸入」(在本地設備上)選擇文本文件並單擊上傳按鈕。我不想讓文件直接上傳,我希望JavaScript做一些驗證,格式化,然後將格式化的結果顯示給用戶。根據驗證和格式化的結果,用戶可以根據自己的需要選擇多個選項。 (是的,它也在服務器端驗證。)

這不是一個AJAX請求,這是要求用戶選擇一個文件,然後上傳它,用JavaScript驗證和格式化文件一路上。

問:

是否可以讀取文件(由用戶上傳選擇的)到HTML網頁,它可以由用戶來查看和分析通過Javascript或jQuery的?如果可能的話,怎麼樣?

它必須支持基本瀏覽器Firefox,Opera,Safari,Chrome和IE8 +。

+0

[HTML5有一些本地文件訪問權限](http://www.html5rocks.com/en/tutorials/file/dndfiles/),但不要指望它被廣泛用於用戶。 IE8絕對不在場;如果你想要更老的瀏覽器支持,你必須先將文件上傳到服務器。 – Blazemonger 2012-03-27 14:22:59

+0

爲什麼要用JavaScript讀文件?難道你不能只上傳現在服務器端的上傳文件,並將其包含在服務器的頁面中?然後,您可以使用JavaScript來播放文件內容,因爲它們在DOM中處於該位置。 – kiswa 2012-03-27 14:24:02

+0

也看看這個討論中的各種選項:http://stackoverflow.com/questions/585234/how-to-read-and-write-into-file-using-javascript – robasta 2012-03-27 14:24:46

回答

5

你會發現最近的東西是FileReader API這是目前的草案limited browser support

您可能需要考慮使用已簽名的Java小程序來獲得更廣泛的支持(但是您將根據安裝了Java插件的人員開始)。

+0

感謝您的鏈接(都非常方便),我有點傷心HTML5並沒有得到更好的支持。看起來我會被標準上傳卡住。不幸的是,對於這種特殊情況,我不能使用像Flash或Java這樣的插件。 – user1295718 2012-03-27 14:45:44

+0

FileReader是它自己的規範。它不是HTML 5的一部分。 – Quentin 2012-03-27 14:49:37

0

除了未完成和不支持的技術,我只能想到2種方法。

  1. 有2個步驟,其中用戶上傳到服務器和服務器發送回去,這樣你可以做任何驗證,那麼當驗證完成後,您發送回服務器(而不是作爲一個上傳,你已經有了這些數據)。

  2. Flash有磁盤訪問,你可以寫一個小的Flash電影,接受一個文件,然後把它交給javascript,但你依賴於閃存。

+0

我不認爲flash允許您讀取文件的內容,例如FileReader – Esailija 2012-03-27 14:30:02

+0

http://snipplr.com/view/2937/ – nathanjosiah 2012-03-27 14:32:32

相關問題