Skip to content

FileReader 可以从 Blob 或者 File 对象中读取数据。

1.语法

创建一个实例:

js
var reader = FileReader()

2.方法

方法按照功能也分为两类:读取和操作。

  1. 读取功能。readAsArrayBuffer()readAsText()readAsDataURL()
  2. 操作功能。abort()

2-1.readAsArrayBuffer()

js
var blob = new Blob(['Hello', 'World'])
var reader = new FileReader()
reader.readAsArrayBuffer(blob)
reader.onload = function () {
  console.log(this.result)
}
reader.onerror = function () {
  console.log(this.error)
}

2-2.readAsText()

js
var blob = new Blob(['Hello', 'World'])
var reader = new FileReader()
reader.readAsText(blob)
reader.onload = function () {
  console.log(this.result)
}
reader.onerror = function () {
  console.log(this.error)
}

2-3.readAsDataURL()

js
var blob = new Blob(['Hello', 'World'])
var reader = new FileReader()
reader.readAsDataURL(blob)
reader.onload = function () {
  console.log(this.result)
}
reader.onerror = function () {
  console.log(this.error)
}

3.事件

需要使用事件来监听结果,因为从磁盘读取数据可能比较费时间。

可用事件有以下几种:

  1. loadstart 开始加载。
  2. progress 加载中。
  3. load 加载成功。
  4. error 加载出错。
  5. loadend 加载完毕(无论是否出错)。
  6. abort 加载暂停。

读取完成后,我们可以通过以下方式访问读取结果:

reader.result 可用来获取成功信息。

reader.error 可用来获取失败信息。