1 示例代码
<input type="file" accept="image/*" @change="handleFile"/>
import {ref} from "vue";
import { encode } from 'js-base64'
const data=ref<string>("")
const handleFile= (e: Event) => {
const el=e.target as HTMLElement
const files=el.files
if (files.length) {
let file = files[0]
let reader = new FileReader()
reader.readAsText(file)
reader.onerror=function (err){
console.log(err)
}
reader.onloadend= function () {
data.value=encode(reader.result as string)
}
}
}
2 FileReader 属性和方法
-
属性
FileReader.error 只读
一个DOMException,表示在读取文件时发生的错误 。 -
FileReader.readyState 只读
表示FileReader状态的数字。取值如下:
常量名 值 描述
-
FileReader.result 只读
文件的内容。该属性仅在读取操作完成后才有效,数据的格式取决于使用哪个方法来启动读取操作。 -
事件处理
FileReader.onabort
处理abort事件。该事件在读取操作被中断时触发。 -
FileReader.onerror
处理error事件。该事件在读取操作发生错误时触发。 -
FileReader.onload
处理load事件。该事件在读取操作完成时触发。 -
FileReader.onloadstart
处理loadstart事件。该事件在读取操作开始时触发。 -
FileReader.onloadend
处理loadend事件。该事件在读取操作结束时(要么成功,要么失败)触发。 -
FileReader.onprogress
处理progress事件。该事件在读取Blob时触发。
因为 FileReader 继承自EventTarget,所以所有这些事件也可以通过addEventListener方法使用。 -
方法
FileReader.abort()
中止读取操作。在返回时,readyState属性为DONE。 -
FileReader.readAsArrayBuffer()
开始读取指定的 Blob中的内容, 一旦完成, result 属性中保存的将是被读取文件的 ArrayBuffer 数据对象. -
FileReader.readAsBinaryString()
开始读取指定的Blob中的内容。一旦完成,result属性中将包含所读取文件的原始二进制数据。 -
FileReader.readAsDataURL()
开始读取指定的Blob中的内容。一旦完成,result属性中将包含一个data: URL格式的字符串以表示所读取文件的内容。 -
FileReader.readAsText()
开始读取指定的Blob中的内容。一旦完成,result属性中将包含一个字符串以表示所读取的文件内容。