功能:用户上传头像
<label>
<input @change="imgChoose" class="none" type="file" accept="image/*">
<img :src="imgSrc" alt="选择头像">
</label>
用label包了一下,input标签不可见,点击img标签就可以选图片了.
使用change事件监听
imgChoose(){
let url = event.target.files[0];
if(url==undefined){
throw error('url is not defined');
}
if('FileReader' in window){
let img = new FileReader();
img.readAsDataURL(url);
img.onload=({target})=>{
this.imgSrc=target.result;
}
}else{
throw error('no FileReader in window');
}
}
用户上传之后,我们会获取一个文件数组,因为头像只有一张图,所以获取第一个file对象.
主要是用到了FileReader,使用new 构造一个他的子对象
使用API readAsDataURL()将file对象转换成可以插入img的src属性的data:URL字符串.
然后将值赋给src的变量就完成了,图片的展示