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

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

盡管在JavaScript中增加API并非多么重大的技術(shù)革命,但它將拓展 Web 應(yīng)用的視野,讓 Web 平臺(tái)實(shí)現(xiàn)越來(lái)越多的功能。
您可能感興趣的文章:
相關(guān)文章
原生js實(shí)現(xiàn)查詢天氣小應(yīng)用
這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)查詢天氣的小應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
微信小程序頁(yè)面與組件之間信息傳遞與函數(shù)調(diào)用
不管是vue還是react中,都在強(qiáng)調(diào)組件思想,所以下面這篇文章主要給大家介紹了關(guān)于微信小程序頁(yè)面與組件之間信息傳遞與函數(shù)調(diào)用的相關(guān)資料,需要的朋友可以參考下2021-05-05
網(wǎng)站基于flash實(shí)現(xiàn)的Banner圖切換效果代碼
這篇文章主要介紹了網(wǎng)站基于flash實(shí)現(xiàn)的Banner圖切換效果代碼,是基于Flash與js實(shí)現(xiàn)的banner圖片自動(dòng)定時(shí)切換特效,并附有完整的示例源碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10
JavaScript生成驗(yàn)證碼并實(shí)現(xiàn)驗(yàn)證功能
這篇文章主要介紹了JavaScript生成驗(yàn)證碼并實(shí)現(xiàn)驗(yàn)證功能的相關(guān)資料,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
利用ASP發(fā)送和接收XML數(shù)據(jù)的處理方法與代碼
利用ASP發(fā)送和接收XML數(shù)據(jù)的處理方法與代碼...2007-11-11
簡(jiǎn)單了解JavaScript中常見(jiàn)的反模式
這篇文章主要介紹了簡(jiǎn)單了解JavaScript中常見(jiàn)的反模式,反模式 是指對(duì)反復(fù)出現(xiàn)的設(shè)計(jì)問(wèn)題的常見(jiàn)的無(wú)力而低效的設(shè)計(jì)模式,俗話說(shuō)就是重蹈覆轍。 這篇文章描述了 JavaScript 中常見(jiàn)的一些反模式,以及避免它們的辦法。,需要的朋友可以參考下2019-06-06
Canvas 制作動(dòng)態(tài)進(jìn)度加載水球詳解及實(shí)例代碼
這篇文章主要介紹了Canvas 制作動(dòng)態(tài)進(jìn)度加載水球詳解及實(shí)例代碼的相關(guān)資料,這里附有實(shí)例代碼及實(shí)現(xiàn)效果圖,需要的朋友可以參考下2016-12-12

