input上傳圖片,並且實現FileReader實圖片預覽效果
阿新 • • 發佈:2018-12-18
input img
<img :src="upImg" alt=""> //屬性繫結為upImg在data()中聲名
<input class="lost" type="file" id="file" @change="upLoadImg($event)" ref="file">
繫結事件
upLoadImg(e) { let that = e.target //儲存當前的input元素 let fr = new FileReader() //初始化 fr.readAsDataURL(e.target.files[0]) //選擇檔案中的頭一個開始讀取,將img讀取為base64編碼可以被img直接解析 fr.onload = e => { //在filereader中讀取完畢開始非同步載入 this.upImg = e.target.result that.value = null //解決change事件重複選擇同一檔案是不能重新渲染載入事件 } }
input 樣式
<span @click="upLoadClick($event)" class="upload"> 哪裡不會點這裡 <input class="lost" type="file" id="file" @change="upLoadImg($event)" ref="file"> </span> <script> upLoadClick(e) { e.click = this.$refs.file.click() console.log(this.$refs); }, </script> <style lang='stylus' scoped> .lost //stylus 就是這麼省略... display none </style>