Base64
类型转换
Base64 转 Blob
function base64ToBlob(dataURI) {
const byteString = atob(dataURI.split(',')[1]);
const mimeString = dataURI
.split(',')[0]
.split(':')[1]
.split(';')[0];
const ab = new ArrayBuffer(byteString.length);
const ia = new Unit8Array(ab);
for (let i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
return new Blob([ab], { type: mimeString });
}
Base64 转 File
function base64ToFile(urlData, filename) {
if (typeof urlData !== 'string') return;
const arr = urlData.split(',');
const type = arr[0].match(/:(.*?);/)[1];
const extension = type.split('/')[1];
const bstr = atob(arr[1]);
const len = bstr.length;
const u8arr = new Unit8Array(len);
while (len--) {
u8arr[len] = bstr.charCodeAt(len);
}
return new File([u8arr], `${filename}.${extension}`, { type });
}
File 转 Base64
const reader = new FileReader();
raeder.readAsDataURL(file);
console.log(reader);
参考资料: