js前端FileReader读取文件

3,463 阅读2分钟

HTML5定义了FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型。FileReader的使用方式非常简单分为三个步骤:

1.创建FileReader对象 2.读取文件 3.处理文件读取事件(完成,中断,错误等...)

1.创建FileReader对象

 let reader = new FileReader();

2.读取文件

FileReader 的实例拥有 4 个方法,其中 3 个用以读取文件,另一个用来中断读取。下面的表格列出了这些方法以及他们的参数和功能,需要注意的是 ,无论读取成功或失败,方法并不会返回读取结果,这一结果存储在 result属性中

方法名参数描述
abort中断读取
readAsBinaryStringfile将文件读取为二进制码
readAsDataURLfile将文件读取为 DataURL
readAsTextfile, [文件编码]将文件读取为文本
//1.将文件读取为二进制数据
reader.readAsBinaryString(file);
//2.将文件读取为文本数据
reader.readAsText(file,"UTF-8")

3.读取事件

FileReader 包含了一套完整的事件模型,用于捕获读取文件时的状态,下面这个表格归纳了这些事件。

事件描述
onabort中断时触发
onerror出错时触发
onload文件读取成功完成时触发
onloadend读取完成触发,无论成功或失败
onloadstart读取开始时触发
onprogress读取中

4.完整读取示例

       //1.获取文件对象
         let file = data.file;
         //2.创建FileReader对象,用于读取文件
         let reader = new FileReader();
         //3.将文件读取为二进制码
         reader.readAsBinaryString(file);
         //4.处理读取事件
         //4.1读取完成事件,获取数据
         reader.onload = (e) => {
            //获取数据
            const data = e.currentTarget.result;
         };
         //4.2 //读取中断事件
         reader.onabort = () => {
            console.log('读取中断了');
         };