選擇照片上傳前如何實作預覽的功能,下面拆解成3個部分說明:
1. 上傳檔案
首先需要一個上傳檔案的HTML<input type="file" accept="image/*" @change="previewImage">根據上面的程式碼,我們需要一個 previewImage 的function來處理選擇的圖片檔。
2. 實作previewImage
接下來是js的程式部分,我們定義了兩個變數 preview 、 image,前者是存放預覽圖片,後者則是實際檔案。new Vue({
data: function() {
return {
preview: null,
image: null
};
},
methods: {
previewImage: function(event) {
var input = event.target;
if (input.files) {
var reader = new FileReader();
reader.onload = (e) => {
this.preview = e.target.result;
}
this.image=input.files[0];
reader.readAsDataURL(input.files[0]);
}
}
}
});3. 顯示預覽
將 previewImage 儲存的結果顯示出來<template v-if="preview">
<img :src="preview" />
<p>file name: {{ image.name }}</p>
<p>size: {{ image.size/1024 }}KB</p>
</template>
執行上面的程式碼就可以達到預覽的效果,最後只要透過API將 image 這個物件透過API丟到後台,就能完成檔案的上傳。(用formData檔案上傳)
更進階的部分,只要在 input tag中加上multiple 就能一次選擇多個檔案。
<input type="file" accept="image/*" multiple>除了預覽單一檔案,也能支援選擇多個檔案並預覽,有需要的話完整的原始碼已經放到codepen上,歡迎參考。
沒有留言:
張貼留言