JavaScript 直接操作本地文件的實現代碼
更新時間:2009年12月01日 23:23:15 作者:
Chrome、IE和Firefox都紛紛在新版中增強了JavaScript引擎的執(zhí)行效率,隨著JavaScript效率在各大瀏覽器的顯著提高,JavaScript可以做越來越多的事,本地文件API的引入將讓很多有趣的功能成為現實。
日前,Mozilla向W3C提交了一個草案,旨在推出一個JavaScript API,讓JavaScript 腳本直接操作本地文件,Firefox的最新瀏覽器版本中已經對該API提供了大量的支持,不過出于安全考慮,該API將只對本地文件提供有限的訪問。
該API引入了一個FileReader 對象,可以異步加載本地文件系統(tǒng)中的文件,并允許開發(fā)者為諸如加載失敗,進度,加載完成等事件分配回調函數,它提供的方法可以從本地文件中讀取文本或二進制數據,并通過一個 abort 方法隨時打斷操作。
FileReader對象使客戶端的文件訪問成為現實,用戶不必再象以前那樣首先將文件上傳到服務器才能處理,事實上,IE 和 Firefox 已經擁有一些非標準的方法訪問本地文件,但這些方法并非標準 JavaScript 行為。
FileReader對象并不需要特別的權限,但出于顯然的安全考慮,直接使用文件路徑進行訪問是不允許的,必須結合常規(guī)的 HTML file 對象,用戶點擊瀏覽之后,選擇本地文件,JavaScript 再通過 DOM 引用該文件并進行操作,這個機制使得該 API 相對安全一些,因為任何本地文件的獲取都需要用戶的人工參與。
以下例子使用該 API 打開一個本地文件并將文件內容顯示在一個 div 容器中,我們甚至可以在 div 上加上 contentEditable 屬性,用戶可以直接編輯文件的內容,不過,該 API 并沒有提供將文件內容寫回本地文件的方法,因此你編輯的內容無法保存。

盡管在JavaScript中增加API并非多么重大的技術革命,但它將拓展 Web 應用的視野,讓 Web 平臺實現越來越多的功能。
該API引入了一個FileReader 對象,可以異步加載本地文件系統(tǒng)中的文件,并允許開發(fā)者為諸如加載失敗,進度,加載完成等事件分配回調函數,它提供的方法可以從本地文件中讀取文本或二進制數據,并通過一個 abort 方法隨時打斷操作。
FileReader對象使客戶端的文件訪問成為現實,用戶不必再象以前那樣首先將文件上傳到服務器才能處理,事實上,IE 和 Firefox 已經擁有一些非標準的方法訪問本地文件,但這些方法并非標準 JavaScript 行為。
FileReader對象并不需要特別的權限,但出于顯然的安全考慮,直接使用文件路徑進行訪問是不允許的,必須結合常規(guī)的 HTML file 對象,用戶點擊瀏覽之后,選擇本地文件,JavaScript 再通過 DOM 引用該文件并進行操作,這個機制使得該 API 相對安全一些,因為任何本地文件的獲取都需要用戶的人工參與。
以下例子使用該 API 打開一個本地文件并將文件內容顯示在一個 div 容器中,我們甚至可以在 div 上加上 contentEditable 屬性,用戶可以直接編輯文件的內容,不過,該 API 并沒有提供將文件內容寫回本地文件的方法,因此你編輯的內容無法保存。

盡管在JavaScript中增加API并非多么重大的技術革命,但它將拓展 Web 應用的視野,讓 Web 平臺實現越來越多的功能。
相關文章
?javascript學數組中的foreach方法和some方法
這篇文章主要介紹了?javascript學數組中的foreach方法和some方法,文章相關內容和代碼詳細,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學習有所幫助2022-03-03