FileReaderSync - 以同步方式读取 File 或 Blob 对象

FileReaderSync 接口允许以同步方式读取 FileBlob 对象。

该接口 仅在 workers 中可用,因为它使用同步的 I/O 操作可能会阻塞用户界面。

方法概览

属性

该接口没有任何属性。

方法

readAsArrayBuffer()

该方法读取指定的 BlobFile 的内容。当读操作完成时,它返回一个表示文件数据的 ArrayBuffer。如果在读取期间发生错误,则发送相应的异常。

ArrayBuffer readAsArrayBuffer(
  in Blob blob
);

参数

blob

读取为 ArrayBuffer 的 DOM BlobFile

返回值

一个 ArrayBuffer,表示文件的数据。

异常

该方法可能引发以下异常:

NotFoundError

当无法找到由 DOM BlobFile 表示的资源时引发,例如:因为文件已被删除。

SecurityError

在检测到以下问题情况之一时引发:

  • 资源已被第三方修改;
  • 同时执行太多读取;
  • 资源指向的文件对于在 Web 上的使用是不安全的(例如它是一个系统文件)。

NotReadableError

由于权限问题(如并发锁定)而无法读取资源时引发。

EncodingError

当资源是数据 URL 并超过每个浏览器定义的限制长度时引发。

readAsBinaryString()

该方法读取指定的 BlobFile 的内容。当读取操作完成时,它返回包含文件中原始二进制数据的 DOMString。如果在读取期间发生错误,则发送相应的异常。

注意: 不推荐使用该方法,改为使用 readAsArrayBuffer()

String readAsBinaryString(
  in Blob blob
);

参数

blob

读取为 DOMString 的 DOM BlobFile

返回值

一个 DOMString,包含来自资源的原始二进制数据。

异常

该方法可能引发以下异常:

NotFoundError

当无法找到由 DOM BlobFile 表示的资源时引发,例如:因为文件已被删除。

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 BlobFile

encoding

可选的。表示要使用的编码的字符串,如 iso-8859-1UTF-8

返回值

一个 DOMString,包含来自资源的原始二进制数据。

异常

该方法可能引发以下异常:

NotFoundError

当无法找到由 DOM BlobFile 表示的资源时引发,例如:因为文件已被删除。

SecurityError

在检测到以下问题情况之一时引发:

  • 资源已被第三方修改;
  • 同时执行太多读取;
  • 资源指向的文件对于在 Web 上的使用是不安全的(例如它是一个系统文件)。

NotReadableError

由于权限问题(如并发锁定)而无法读取资源时引发。

readAsDataURL()

该方法读取指定的 BlobFile 的内容。当读取操作完成时,它返回表示文件数据的数据 URL。如果在读取期间发生错误,则发送适当的异常。

String readAsDataURL(
  in Blob file
);

参数

blob

要读取的 BlobFile

返回值

一个 DOMString,将文件的数据表示为数据 URL。

异常

该方法可能引发以下异常:

NotFoundError

当无法找到由 DOM BlobFile 表示的资源时引发,例如:因为文件已被删除。

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 不支持

相关链接