1. base64转换为 blob
base64ToBlob (urlData, type) {
let arr = urlData.split(',');
if (arr[0].match(/:(.*?);/)) {
let mime = arr[0].match(/:(.*?);/)[1] || type;
let bytes = window.atob(arr[1]);
let ab = new ArrayBuffer(bytes.length);
let ia = new Uint8Array(ab);
for (let i = 0; i < bytes.length; i++) {
ia[i] = bytes.charCodeAt(i);
}
return new Blob([ab], {
type: mime
});
} else {
this.$message.error('图片转换失败');
return false;
}
},
2. base64转换为 file 文件流
base64toFile (dataurl, filename = 'file') {
let arr = dataurl.split(',')
let mime = arr[0].match(/:(.*?);/)[1]
let suffix = mime.split('/')[1]
let bstr = atob(arr[1])
let n = bstr.length
let u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new File([u8arr], `${filename}.${suffix}`, {
type: mime
})
},
3. 获取blob 及 file
let base64Src= src;
var type = "image/png";
let conversions = this.base64ToBlob(file, type);
window.URL = window.URL || window.webkitURL;
let blob = window.URL.createObjectURL(conversions);
let files = this.base64toFile(base64Src);