目标:选择的图片文件,要给到 img 标签上做纯前端的预览
img 标签的 src 值
* 只能是图片的 “链接地址”(外链http:// 开头,图片文件相对路径)
* 或者是图片的 base64 字符串(而且字符串还必须是 data:image/png;base64,图片转为 base64 字符串)
解决方案1: 文件 -> 内存临时地址(这个地址只能在 js 内存里不能发给后台)
语法:URL.CreateObjectURL(文件) 返回值:内存临时地址
解决方法2:文件 -> base64 字符串
1.创建 FileReader 对象
const fr = new FileReader()
2.调用 readAsDataURL 函数,读取文件内容
fr.readAsDataURL(files[0])
3.监听 fr 的 onload 事件
fr.onload = e => {
4.通过 e.target.result 获取到读取的结果,值是字符串(base64 格式的字符串)
this.avatar = e.target.result
}
选取文件,原生 input 绑定 change 事件
changemethod(e){
e.target.files[0] 即就是选取的文件,默认模式下只能选择一个文件
}