美文网首页
[HTML5] FileReader对象

[HTML5] FileReader对象

作者: 江疏影子 | 来源:发表于2019-08-20 17:28 被阅读0次

FileReader主要用于将文件内容读入内存,通过一系列异步接口,可以在主线程中访问本地文件。可以使用File对象或者Blob对象来指定所要处理的文件或数据。

创建实例
let reader=new FileReader();

方法

1.reader.readAsText()

readAsText 方法可以将 Blob 或者 File 对象转根据特殊的编码格式转化为内容(字符串形式)

$("#file").change(function(e){ //input type="file"
    let file=e.target.files[0];
    if(file){
        //读取本地文件,以gbk编码方式输出
        var reader = new FileReader();
        reader.readAsText(file,"gbk");
        reader.onload = function(){
            //读取完毕后输出结果
            console.log(this.result);
        }
    }
})
上传的是.txt文件
上传的是img,乱码掉了
readAsText读取文件的单位是字符,故对于文本文件,只要按规定的编码方式读取即可;
而对于媒体文件(图片、音频、视频),其内部组成并不是按字符排列,故采用readAsText读取,会产生乱码,同时也不是最理想的读取文件的方式。
2.reader.readAsDataURL()

readAsDataURL 方法会读取指定的 BlobFile 对象。读取操作完成的时候,readyState会变成已完成DONE,并触发 loadend 事件,同时 result 属性将包含一个data:URL格式的字符串(base64编码)以表示所读取文件的内容。

上传的图片
上传的.txt文件
上传的.xls文件
3.readAsBinaryString
OMG
4.readAsArrayBuffer()

FileReader 接口提供的 readAsArrayBuffer() 方法用于启动读取指定的 BlobFile 内容。当读取操作完成时,readyState 变成 DONE(已完成),并触发 loadend事件,同时 result 属性中将包含一个 ArrayBuffer 对象以表示所读取文件的数据。

上传的.txt文件
上传的word文件
上传的img

事件

onload

当文件成功读取时,执行load 事件

abort

当读取已经中止事件被触发

error

当读取因错误而失败时(例如,因为找不到文件或不可读),会触发错误事件

loadstart

文件读取操作开始时会触发该事件

progress

progress事件被解雇周期性的FileReader读取数据。

loadend

loadend当文件读取已成功完成时,将触发该事件

补加一个readyState

$("#file").change(function(e){
    let file=e.target.files[0];
    if(file){
        //读取本地文件,以gbk编码方式输出
        var reader = new FileReader();
        console.log(reader.readyState);//0
        reader.readAsDataURL(file);
        reader.onload = function(){
            //读取完毕后输出结果
            console.log(this.result);
            console.log(reader.readyState)//2
        }
        console.log(reader.readyState)//1
    }
})

输出顺序也是 0 1 2
0 ->尚未加载任何数据
1 ->目前正在加载数据。
2 ->整个读取请求已完成。

相关文章

  • 图片上传之预览

    预备知识 图片预览需要用到html5里面的FileReader对象,通过FileReader读取选择的图片文件,并...

  • 只利用js实现导入和导出文件

    导出文件 利用a标签和HTML5中的Blob对象实现: 导入文件 利用表单和HTML5中的FileReader对象实现:

  • 2018-07-29

    为什么js不能操作本地文件 Html5——File、FileReader、Blob、Fromdata对象 Angu...

  • HTML5 FileReader对象

    FileReader的接口方法 FileReader实例拥有四个方法,其中三个是用来读取文件,另一个是用来中断读取...

  • [HTML5] FileReader对象

    FileReader主要用于将文件内容读入内存,通过一系列异步接口,可以在主线程中访问本地文件。可以使用File对...

  • FileReader

    HTML5 FileReader API

  • html5 操作文件FileReader方法

    创建FileReader对象;var Reader = new FileReader 调用FileReader对象...

  • base64图片上传

    首先来看一下HTML5的FileReader对象 方法 接口事件 下面是实现 javascript functio...

  • html5接口 FileReader()对象

    此接口用于读取文件,与 并用 //用FileReader()的readAsDataURL()方法去读取图像 使用例...

  • 本地解析SQL文件,并传给后台

    FileReader API 介绍 FileReader API 使用FileReader对象,web应用程序可以...

网友评论

      本文标题:[HTML5] FileReader对象

      本文链接:https://www.haomeiwen.com/subject/ergusctx.html