FileReader 类型 是一种异步文件读取机制 可以把FileReader 想象成XMLHttpRequest 区别是它读取的是文件系统 不是远程服务器 为了读取文件的数据 它提供了如下的几种方法
1.readAsText(file,encoding) 以纯文本形式读取文件 将读取的文件保存在result属性中 第二个参数用于 指定编码类型 是可选的 一般用于读取txt等文本文件 2. readAsDataURL 读取文件并将文件以数据URL(base64)的形式保存在result属性中 一般用于读取图片等文件 3. readASBinaryString(file) 读取文件并将一个字符串保存在reasult中 字符UC哈UN的每一个字符都代表这一小节 4.readAsArrayBuffer(file) 读取文件并将文件内容的ArrayBuffer 保存在result
由于读取过程是一步的,FileReader 也提供了几个事件。其中最有用的就是 progress error 和 load 分别表示是否又读取了新数据 是否发生了错误 以及是否已经读完了整个文件 每过50ms 左右,就会触发progress 事件通过事件对象可以获得与XHR的progress事件相同的信息(属性) lengthVomputable loaded 和 total 另外尽管可能美誉包含全部数据 但每次progress 事件中都可以通过FilReader 的result 属性读取到文件内容 由于种种原因无法读取文件,就会触发error事件,触发error事件时,相关的信息将会保存到FileReader 的error属性。这个属性将保存一个对象 这个对象 只有一个属性code 就是错误码 这个错误码 1表示未找到文件 2 表示安全性错误 3 表示读取中断 4表示 文件不可读 5表示编码错误。 文件成功加载完后会触发load事件 如果发生error事件 就不会发生load事件