美文网首页
FileReader 的使用

FileReader 的使用

作者: 赵碧菡 | 来源:发表于2017-07-29 19:40 被阅读0次

FileReader作为文件API的重要成员用于读取文件,FileReader接口提供了读取文件的方法和包含读取结果的事件模型。

1、创建FileReader对象

var reader=new FileReader();

2、调用FileReader对象的方法:

  • abort
    该方法没有参数, 中断读取。
  • readAsBinaryString
    参数file,该方法将文件读取为二进制字符串,通常我们将它传送到后端,后端可以通过这段字符串存储文件。
  • readAsDataURL
    参数file,该方法将文件读取为一段以 data:开头的字符串,这段字符串的实质就是 Data URL,Data URL是一种将小文件直接嵌入文档的方案。这里的小文件通常是指图像与 html 等格式的文件。
  • readAsText
    该方法有两个参数fileencodingencoding是编码方式,默认是UTF-8,该方法将文件以文本方式读取,读取的结果即是这个文本文件中的内容

3、处理事件
FileReader包含了一套完整的事件模型,用于捕获读取文件时的状态:

  • onabort
    中断时触发
  • onerror
    发生错误是触发
  • onload
    文件读取成功完成时触发
  • onloadend
    读取完成触发,无论成功或失败
  • onloadstart
    读取开始时触发
  • onprogress
    读取中

文件一旦开始读取,无论成功或失败,实例的 result 属性都会被填充。如果读取失败,则 result 的值为 null ,否则即是读取的结果,绝大多数的程序都会在成功读取文件的时候,抓取这个值

4、 下面是利用FileReader实现图片的上传

js 代码

<script type="text/javascript">
        var fileInput=document.getElementById("fileName"),
        preview=document.getElementById("preview"),
        info=document.getElementById("info");

        fileInput.addEventListener('change',function(){
            preview.style.backgroundImage='';
            if(!fileInput.value){
                info.innerHTML="没有选择图片";
                return;
            }
            //获取file 引用
            var file=fileInput.files[0];  //file object
            info.innerHTML="文件:"+file.name+"<br>"+"大小:"+file.size+"<br>"+"修改:"+file.lastModifiedDate;

            //判断文件类型
            if(file.type!="image/jpeg" && file.type!="image/png"&& file.type!="image/gif" && file.type!="image/jpg"){
                alert("请选择图片");
                return;
            }
             //读取文件
             var reader=new FileReader();
             //文件读取成功完成时触发
             reader.onload = function(e) {
                var data=e.target.result;
                alert(data)
                preview.style.backgroundImage="url("+data+")";
             }
             // 以DataURL的形式读取文件:
             reader.readAsDataURL(file);
         })
     </script>

HTML 代码

    <div class="body">
        <div id="preview"></div>  <!--显示图片-->
        <input type="file" name="file" id="fileName">
        <div id="info"></div>
    </div>

效果图

图片.png

相关文章

网友评论

      本文标题:FileReader 的使用

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