在处理文件预览与打印的时候经常需要转换成base64在前端处理,后台返回blob对象。
blob转换为base64
function getBase64(blob) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
}
base64转换为blob
function dataURItoBlob(base64Data) {
let byteString;
if (base64Data.split(',')[0].indexOf('base64') >= 0) {byteString = atob(base64Data.split(',')[1]);}
else {
byteString = unescape(base64Data.split(',')[1]);
}
const mimeString = base64Data.split(',')[0].split(':')[1].split(';')[0];
const ia = new Uint8Array(byteString.length);
for (let i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
const blob = new Blob([ia], {
type: mimeString,
});
return blob;
}
以上
网友评论