WEBAPI-FileReader
优质
小牛编辑
126浏览
2023-12-01
介绍
FileReader
对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File
或 Blob
对象指定要读取的文件或数据。
其中File
对象可以是来自用户在一个<input>
元素上选择文件后返回的FileList
对象,也可以来自拖放操作生成的 DataTransfer
对象,还可以是来自在一个HTMLCanvasElement
上执行mozGetAsFile()
方法后返回结果。
属性
FileReader.error
只读FileReader.readyState
只读- EMPTY: 0 还没有加载任何数据
- LOADING: 1 数据正在被加载.
- DONE: 2 已完成全部的读取请求.
FileReader.result
只读 文件的内容。该属性仅在读取操作完成后才有效,数据的格式取决于使用哪个方法来启动读取操作。
事件处理
FileReader.onabort
: 处理abort
事件。该事件在读取操作被中断时触发。FileReader.onerror
: 处理error
事件。该事件在读取操作发生错误时触发。FileReader.onload
: 处理load
事件。该事件在读取操作完成时触发。FileReader.onloadstart
: 处理loadstart
事件。该事件在读取操作开始时触发。FileReader.onloadend
: 处理loadend
事件。该事件在读取操作结束时(要么成功,要么失败)触发。 6FileReader.onprogress
: 处理progress
事件。该事件在读取Blob
时触发。
方法
FileReader.abort()
: 中止读取操作。在返回时,readyState
属性为DONE
。 FileReader.readAsArrayBuffer()
: 异步按字节读取文件内容,结果用 ArrayBuffer 对象表示. FileReader.readAsBinaryString()
: 异步按字节读取文件内容,结果为文件的二进制串 FileReader.readAsDataURL()
: 异步读取文件内容,结果为data: URL
格式的Base64
字符串以表示所读取文件的内容。 FileReader.readAsText()
: 异步按字符读取文件内容,结果用字符串形式表示。(可以读取txt的文本信息,实际上读的是文件类型为text/*
的文件的信息)
示例
读取txt文件
const input = document.querySelector('input[type=file]');
input.addEventListener('change', ()=>{
const reader = new FileReader()
reader.readAsText(input.files[0],'utf8') // input.files[0]为第一个文件
reader.onload = ()=>{
document.body.innerHTML += reader.result // reader.result为获取结果
}
}, false)
读取图片文件
const input = document.querySelector('input[type=file]')
input.addEventListener('change', ()=>{
console.log( input.files )
const reader = new FileReader()
reader.readAsDataURL(input.files[0]) // input.files[0]为第一个文件
reader.onload = ()=>{
const img = new Image()
img.src = reader.result
document.body.appendChild(img) // reader.result为获取结果
}
}, false)