FileReaderSync - 以同步方式读取 File 或 Blob 对象
FileReaderSync
接口允许以同步方式读取 File
或 Blob
对象。
该接口 仅在 workers 中可用,因为它使用同步的 I/O 操作可能会阻塞用户界面。
方法概览
ArrayBuffer readAsArrayBuffer(Blob blob);
DOMString readAsBinaryString(Blob blob);
DOMString readAsText(Blob blob, optional DOMString encoding);
DOMString readAsDataURL(Blob blob);
属性
该接口没有任何属性。
方法
readAsArrayBuffer()
该方法读取指定的 Blob
或 File
的内容。当读操作完成时,它返回一个表示文件数据的 ArrayBuffer
。如果在读取期间发生错误,则发送相应的异常。
ArrayBuffer readAsArrayBuffer(
in Blob blob
);
参数
blob
读取为 ArrayBuffer
的 DOM Blob
或 File
。
返回值
一个 ArrayBuffer
,表示文件的数据。
异常
该方法可能引发以下异常:
NotFoundError
当无法找到由 DOM Blob
或 File
表示的资源时引发,例如:因为文件已被删除。
SecurityError
在检测到以下问题情况之一时引发:
- 资源已被第三方修改;
- 同时执行太多读取;
- 资源指向的文件对于在 Web 上的使用是不安全的(例如它是一个系统文件)。
NotReadableError
由于权限问题(如并发锁定)而无法读取资源时引发。
EncodingError
当资源是数据 URL 并超过每个浏览器定义的限制长度时引发。
readAsBinaryString()
该方法读取指定的 Blob
或 File
的内容。当读取操作完成时,它返回包含文件中原始二进制数据的 DOMString
。如果在读取期间发生错误,则发送相应的异常。
注意: 不推荐使用该方法,改为使用
readAsArrayBuffer()
。
String readAsBinaryString(
in Blob blob
);
参数
blob
读取为 DOMString
的 DOM Blob
或 File
。
返回值
一个 DOMString
,包含来自资源的原始二进制数据。
异常
该方法可能引发以下异常:
NotFoundError
当无法找到由 DOM Blob
或 File
表示的资源时引发,例如:因为文件已被删除。
SecurityError
在检测到以下问题情况之一时引发:
- 资源已被第三方修改;
- 同时执行太多读取;
- 资源指向的文件对于在 Web 上的使用是不安全的(例如它是一个系统文件)。
NotReadableError
由于权限问题(如并发锁定)而无法读取资源时引发。
EncodingError
当资源是数据 URL 并超过每个浏览器定义的限制长度时引发。
readAsText()
该方法读取指定的 blob 的内容。当读取操作完成时,它返回一个 DOMString
,其中包含表示为文本字符串的文件。可选的 encoding
参数表示要使用的编码。如果不存在,该方法将对其应用检测算法。如果在读取期间发生错误,则发送相应的异常。
String readAsText(
in Blob blob,
in DOMString encoding <span class="inlineIndicator optional optionalInline">可选</span>
);
参数
blob
读取为 DOMString
的 DOM Blob
或 File
。
encoding
可选的。表示要使用的编码的字符串,如 iso-8859-1 或 UTF-8。
返回值
一个 DOMString
,包含来自资源的原始二进制数据。
异常
该方法可能引发以下异常:
NotFoundError
当无法找到由 DOM Blob
或 File
表示的资源时引发,例如:因为文件已被删除。
SecurityError
在检测到以下问题情况之一时引发:
- 资源已被第三方修改;
- 同时执行太多读取;
- 资源指向的文件对于在 Web 上的使用是不安全的(例如它是一个系统文件)。
NotReadableError
由于权限问题(如并发锁定)而无法读取资源时引发。
readAsDataURL()
该方法读取指定的 Blob
或 File
的内容。当读取操作完成时,它返回表示文件数据的数据 URL。如果在读取期间发生错误,则发送适当的异常。
String readAsDataURL(
in Blob file
);
参数
blob
返回值
一个 DOMString
,将文件的数据表示为数据 URL。
异常
该方法可能引发以下异常:
NotFoundError
当无法找到由 DOM Blob
或 File
表示的资源时引发,例如:因为文件已被删除。
SecurityError
在检测到以下问题情况之一时引发:
- 资源已被第三方修改;
- 同时执行太多读取;
- 资源指向的文件对于在 Web 上的使用是不安全的(例如它是一个系统文件)。
NotReadableError
由于权限问题(如并发锁定)而无法读取资源时引发。
EncodingError
当资源是数据 URL 并超过每个浏览器定义的限制长度时引发。
规范
规范 | 状态 | 备注 |
---|---|---|
File API FileReaderSync 的定义 |
工作草案 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 8 | 支持 | 支持 | 支持 |
readAsArrayBuffer |
支持 | 支持 | 8 | 支持 | 支持 | 支持 |
readAsBinaryString |
支持 | 支持 | 8 | 支持 | 支持 | 支持 |
readAsDataURL |
支持 | 支持 | 8 | 支持 | 支持 | 支持 |
readAsText |
支持 | 支持 | 8 | 支持 | 支持 | 支持 |
Service workers support | 支持 — 59 | 未知 | 支持 — 61 | 不支持 | 支持 — 46 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 支持 | 8 | 未知 | 支持 | 支持 |
readAsArrayBuffer |
支持 | 支持 | 支持 | 8 | 未知 | 支持 | 支持 |
readAsBinaryString |
支持 | 支持 | 支持 | 8 | 未知 | 支持 | 支持 |
readAsDataURL |
支持 | 支持 | 支持 | 8 | 未知 | 支持 | 支持 |
readAsText |
支持 | 支持 | 支持 | 8 | 未知 | 支持 | 支持 |
Service workers support | 支持 — 59 | 支持 — 59 | 未知 | 支持 — 61 | 未知 | 支持 — 46 | 不支持 |