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

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

盡管在JavaScript中增加API并非多么重大的技術(shù)革命,但它將拓展 Web 應(yīng)用的視野,讓 Web 平臺實(shí)現(xiàn)越來越多的功能。
相關(guān)文章
Textarea輸入字?jǐn)?shù)限制實(shí)例(兼容iOS&安卓)
下面小編就為大家?guī)硪黄猅extarea輸入字?jǐn)?shù)限制實(shí)例(兼容iOS&安卓)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07?javascript學(xué)數(shù)組中的foreach方法和some方法
這篇文章主要介紹了?javascript學(xué)數(shù)組中的foreach方法和some方法,文章相關(guān)內(nèi)容和代碼詳細(xì),具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助2022-03-03JavaScript調(diào)用ajax獲取文本文件內(nèi)容實(shí)現(xiàn)代碼
這篇文章主要介紹了JavaScript調(diào)用ajax獲取文本文件內(nèi)容的方法,需要的朋友可以參考下2014-03-03JavaScript中的回調(diào)函數(shù)實(shí)例講解
今天小編就為大家分享一篇關(guān)于JavaScript中的回調(diào)函數(shù)實(shí)例講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01詳解js根據(jù)百度地圖提供經(jīng)緯度計算兩點(diǎn)距離
這篇文章主要介紹了js根據(jù)百度地圖提供經(jīng)緯度計算兩點(diǎn)距離,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05