el-upload将上传的图片转为base64
elementui使用el-upload时将选择的图片转为base64格式,然后再上传
1. el-upload属性设置
使用组件,然后on-change绑定一个方法来获取文件信息,auto-upload设置为false即可
<el-upload action='' :on-change="getFile" :limit="1" list-type="picture" :auto-upload="false">
<el-button size="small" type="primary">选择图片上传,最多上传一张图片</el-button>
</el-upload>
2. 图片转base64格式方法
自定义一个方法,用来把图片内容转为base64格式,imgResult就是base64格式的内容了。转为base64字符串要调用h5特性中的FileReader这个api,但是这个api不能return,所以用promise封装一下。
getBase64(file) {
return new Promise(function(resolve, reject) {
let reader = new FileReader();
let imgResult = "";
reader.readAsDataURL(file);
reader.onload = function() {
imgResult = reader.result;
};
reader.onerror = function(error) {
reject(error);
};
reader.onloadend = function() {
resolve(imgResult);
};
});
},
3. 在绑定的方法中调用
getFile(file, fileList) {
this.getBase64(file.raw).then(res => {
console.log(res)
});
},