在blob流转化成base64的方法
function blobtoBase64(blob, callback) {
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function () {
callback(reader.result);
};
}
blobtoBase64(blob, function(res){
console.log(res,88888)})
base64TO file,base64 先转换为 Blob,再由 Blob 转换为 File:
在 JavaScript 中,可以使用 Blob 对象将 base64 字符串转换为二进制数据对象 Blob。
首先,使用 atob() 函数将 base64 字符串解码为二进制字符串。然后,使用 Uint8Array 构造函数将二进制字符串转换为字节数组。最后,使用 Blob 构造函数,将字节数组作为第一个参数,创建一个新的 Blob 对象。
function base64ToFile(base64,fileName){
let arr =base64.split(",");
let mime = arr[0].match(/:(.\*?);/)[1];
let bstr = atob(arr[1]);
let n= bstr.length;
let u8arr = new Uint8Array(n);
while(n--){
u8arrI[n]= bstr.charCodeAt(n);
}
return new File([u8arr],fileName,{type: mime });
}
BolbToFile
function blobToFile(blob,fileName){
return new File([blob],fileName)
}
File => base64
function fileToBase64(file){
return new Promise((resolve,reject)=>{
//创建一个新的FileReader对象
const reader = new FileReader()
//读取File 对象
reader.readAsDataURL(file);
//加载完成后
reader.onload= function(){
//将读取的数据转换为base64编码的字符串
const base64String =reader.result.split(",")[1];
// 解析为Promise对象,并返回base64编码的字符串
resolve(base64String);
}
//加载失败时
reader.onerror=function(){
reject(new Error('Failed to load file'))
}
})
}