vue 結合 FileReader() 實現上傳圖片預覽功能

項目中 身份證上傳需求:html

<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:this

     FileReader() 兼容性spa

 

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

相關文章
相關標籤/搜索