項目中 身份證上傳需求: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