JavaScript FileReader文件读取处理

2019-08-09 18:13:07 233

FileReader是前端进行文件处理的一个重要的Api,特别是在对图片的处理上,如果你想知道图片的处理原理,你就永远不可能绕过它。

文件处理是一系列的流程,每一步我们都需要知道,自己能做什么,自己做了什么。

第一步,获取文件

前端中,获取文件必须使用input标签。

“<input id="file" type="file"/>”

处理这个文件,必须要用代码的方式,体现出来,让你能用代码操作它。这里主要是使用input标签的onchange事件。

var file = document.getELementById('file');

file.onchange = function(e){

    var files = e.target.files;

    //这个files就是获取的file文件的一个数组。之后你可以使用任何方式来操作它。

}

关于file的小知识:前端在读取到files数组之后,可以对得到的文件一些属性进行读取。这些属性分别是:name、size、type、lastModifiedDate。

一个特别重要的点就是判断图片的大小,根据文件的大小进行后续操作。

var file = files[0];//比如这个file是图片

if(file.size > 5000){

    //处理压缩操作

}

第二步,读取文件

1、读取文件,主要使用的是FileReader类。它提供了几个方法。

readAsText(file, encoding); 

以纯文本形式读取文件,读取到的文本保存在result属性中。第二个参数代表编码格式。

readAsDataUrl(file); 

读取文件并且将文件以数据URI的形式保存在result属性中。

readAsBinaryString(file); 

读取文件并且把文件以字符串保存在result属性中。

readAsArrayBuffer(file); 

读取文件并且将一个包含文件内容的ArrayBuffer保存咋result属性中。

2、文件读取的过程是异步操作,在这个过程中提供了三个事件。progress、error、load事件。

progress-每隔50ms左右,会触发一次progress事件。

error-在无法读取到文件信息的条件下触发。

load-在成功加载后就会触发。

--------------------- 

原文:https://blog.csdn.net/mapbar_front/article/details/78632928