vue 结合 FileReader() 实现上传图片预览功能

项目中 身份证上传需求:

<div class="ID_pic_wrap">
            <ul>
                <li>
                    <img src="../../assets/images/id_face_pic@2x.png" >
                    <span class="cancel_btn" @click="delFun()"></span>
                    <input id="id_face_file" @change="uploadFile1" ref="files1" type="file">
                    <img id="showIdFaceSrc" :src="src1" alt="">
                </li>
                <li>
                    <img src="../../assets/images/id_behand_pic@2x.png" >
                    <span class="cancel_btn" @click="delFun()"></span>
                    <input id="id_behand_file" @change="uploadFile2"   ref="files2" type="file">
                    <img id="showIdbehandSrc" :src="src2" alt="">
                </li>
            </ul>
        </div>

  

uploadFile1(e){
            let _this = this;
            // console.log(e.target.files[0])
            if (!e || !window.FileReader) return  // 看支持不支持FileReader
            let reader = new FileReader()
            reader.readAsDataURL(e.target.files[0]) // 这里是最关键的一步,转换就在这里 (参数必须是blob对象)
            reader.onloadend = function () {
                _this.src1 = this.result
            }
        },
        uploadFile2(e){

            console.log(222)
            let _this = this;
            if (!e || !window.FileReader) return  // 看支持不支持FileReader 
            // console.log(e.target.files[0]);
            let reader = new FileReader()
            reader.readAsDataURL(e.target.files[0]) // 这里是最关键的一步,转换就在这里(参数必须是blob对象)
       reader.onloadend = function () { 
        _this.src2 = this.result 
       } 
      }, 
      delFun(){ 
        if(this.src1){ 
          this.src1 = ""; 
          this.$refs.files1.value=""; //这里清空input的value 不然不可以选择相同的文件 
        }else if(this.src2){ 
        this.src2 = ""; 
        this.$refs.files2.value=""; //这里清空input的value 不然不可以选择相同的文件
      }
   },

 

  note:

     FileReader() 兼容性

 

更多信息 移步:https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader 

 

posted @ 2019-02-13 17:30  yanye411325  阅读(6897)  评论(0编辑  收藏  举报