FileReader:error 事件

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

备注: 此特性在 Web Worker 中可用。

FileReader 接口的 error 事件在由于错误(例如,因为文件未找到或不可读)导致读取失败时触发。

此事件不可取消且不会冒泡。

语法

addEventListener() 等方法中使用事件名称,或设置事件处理器属性。

js
addEventListener("error", (event) => {});

onerror = (event) => {};

事件类型

事件属性

还继承其父级 Event 的属性。

ProgressEvent.lengthComputable 只读

一个布尔标志,指示底层进程要完成的总工作量以及已完成的工作量是否可计算。换句话说,它表明进展是否可衡量。

ProgressEvent.loaded 只读

一个 64 位无符号整数值,指示底层进程已执行的工作量。完成工作的比率可以通过将 total 除以该属性的值来计算。使用 HTTP 下载资源时,仅计算 HTTP 消息的正文,不包括标头和其他开销。

ProgressEvent.total 只读

一个 64 位无符号整数,表示底层进程正在执行的工作总量。使用 HTTP 下载资源时,这是 Content-Length(消息正文的大小),不包括标头和其他开销。

示例

js
const fileInput = document.querySelector('input[type="file"]');
const reader = new FileReader();

function handleSelected(e) {
  const selectedFile = fileInput.files[0];
  if (selectedFile) {
    reader.addEventListener("error", () => {
      console.error(`读取文件时发生错误:${selectedFile.name}`);
    });

    reader.addEventListener("load", () => {
      console.log(`文件:${selectedFile.name} 读取成功`);
    });

    reader.readAsDataURL(selectedFile);
  }
}

fileInput.addEventListener("change", handleSelected);

规范

Specification
File API
# dfn-error-event
File API
# dfn-onerror

浏览器兼容性

BCD tables only load in the browser

参见