base64转二进制流、file流转base64、二进制流转base64
// base64转二进制流
base64ToBlob(url: any) {
let arr = url.split(','),
mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {
type: mime
});
}
// file流转base64
getFileBase64 = (file: File): Promise<string | ArrayBuffer | null> =>
new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
// 二进制流转base64
// getBase64 = (data: any): Promise<string | ArrayBuffer | null> =>
// new Promise((resolve, reject) => {
// const blob = new Blob([data], {type: 'image/jpg'});
// const reader = new FileReader();
// reader.readAsDataURL(blob);
// reader.onload = () => resolve(reader.result);
// reader.onerror = error => reject(error);
// });
getBase64(data: any, type: string) {
return new Promise((resolve, reject) => {
const blob = new Blob([data], {type: type});
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
}
浙公网安备 33010602011771号