FileReader接口文檔

原文地址 https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader

**FileReader** 對象允許 Web 應(yīng)用程序異步讀取存儲在用戶計(jì)算機(jī)上的文件(或原始數(shù)據(jù)緩沖區(qū))的內(nèi)容,使用 FileBlob 對象指定要讀取的文件或數(shù)據(jù)。

其中 File 對象可以是來自用戶在一個(gè) <input>元素上選擇文件后返回的 FileList對象, 也可以來自拖放操作生成的 DataTransfer對象, 還可以是來自在一個(gè) HTMLCanvasElement上執(zhí)行mozGetAsFile()方法后返回結(jié)果。

重要提示: FileReader 僅用于以安全的方式從用戶(遠(yuǎn)程)系統(tǒng)讀取文件內(nèi)容 它不能用于從文件系統(tǒng)中按路徑名簡單地讀取文件。 要在 JavaScript 中按路徑名讀取文件,應(yīng)使用標(biāo)準(zhǔn) Ajax 解決方案進(jìn)行服務(wù)器端文件讀取,如果讀取跨域,則使用 CORS 權(quán)限。

Note: 此特性在 Web Worker 中可用。

構(gòu)造函數(shù)

FileReader()

返回一個(gè)新構(gòu)造的FileReader

有關(guān)詳細(xì)信息和示例,請參閱如何在 web 應(yīng)用程序中使用文件。

屬性

FileReader.error 只讀

一個(gè) DOMException,表示在讀取文件時(shí)發(fā)生的錯(cuò)誤 。

FileReader.readyState 只讀

表示FileReader狀態(tài)的數(shù)字。取值如下:

FileReader.result 只讀

文件的內(nèi)容。該屬性僅在讀取操作完成后才有效,數(shù)據(jù)的格式取決于使用哪個(gè)方法來啟動(dòng)讀取操作。

事件處理

FileReader.onabort

處理 [abort](/zh-CN/docs/Web/Reference/Events/abort "/zh-CN/docs/Web/Reference/Events/abort")事件。該事件在讀取操作被中斷時(shí)觸發(fā)。

FileReader.onerror

處理 [error](/zh-CN/docs/Web/Reference/Events/error "/zh-CN/docs/Web/Reference/Events/error")事件。該事件在讀取操作發(fā)生錯(cuò)誤時(shí)觸發(fā)。

FileReader.onload

處理 [load](/zh-CN/docs/Web/Reference/Events/load "/zh-CN/docs/Web/Reference/Events/load")事件。該事件在讀取操作完成時(shí)觸發(fā)。

FileReader.onloadstart

處理 [loadstart](/zh-CN/docs/Web/Reference/Events/loadstart "/zh-CN/docs/Web/Reference/Events/loadstart")事件。該事件在讀取操作開始時(shí)觸發(fā)。

FileReader.onloadend

處理 [loadend](/zh-CN/docs/Web/Reference/Events/loadend "/zh-CN/docs/Web/Reference/Events/loadend")事件。該事件在讀取操作結(jié)束時(shí)(要么成功,要么失?。┯|發(fā)。

FileReader.onprogress

處理 [progress](/zh-CN/docs/Web/Reference/Events/progress "/zh-CN/docs/Web/Reference/Events/progress")事件。該事件在讀取 Blob時(shí)觸發(fā)。

因?yàn)?FileReader 繼承自 EventTarget,所以所有這些事件也可以通過 addEventListener方法使用。

方法

FileReader.abort()

中止讀取操作。在返回時(shí),readyState屬性為DONE。

FileReader.readAsArrayBuffer()

開始讀取指定的 Blob中的內(nèi)容, 一旦完成, result 屬性中保存的將是被讀取文件的 ArrayBuffer 數(shù)據(jù)對象.

FileReader.readAsBinaryString()

開始讀取指定的 Blob中的內(nèi)容。一旦完成,result屬性中將包含所讀取文件的原始二進(jìn)制數(shù)據(jù)。

FileReader.readAsDataURL()

開始讀取指定的 Blob中的內(nèi)容。一旦完成,result屬性中將包含一個(gè)data: URL 格式的 Base64 字符串以表示所讀取文件的內(nèi)容。

FileReader.readAsText()

開始讀取指定的 Blob中的內(nèi)容。一旦完成,result屬性中將包含一個(gè)字符串以表示所讀取的文件內(nèi)容。

規(guī)范

Specification Status Comment
[File API
FileReader](https://w3c.github.io/FileAPI/#dfn-filereader) Working Draft Initial definition

瀏覽器兼容

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

  • Desktop
  • Mobile
3.6 (1.9.2)[1]

[1] Prior to Gecko 2.0 beta 7 (Firefox 4.0 beta 7), all Blob parameters below were File parameters; this has since been updated to match the specification correctly. Prior to Gecko 13.0 (Firefox 13.0 / Thunderbird 13.0 / SeaMonkey 2.10) the FileReader.error property returned a FileError object. This interface has been removed and FileReader.error is now returning the DOMError object as defined in the latest FileAPI draft.

[2] Opera has partial support in 11.1.

相關(guān)鏈接

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容