bloburl格式:
blob:http://localhost:8080/c69fbb0e-b234-4926-bb3e-aa6103a169fa
blob格式:
Blob {size: 272260, type: ‘application/pdf’}size: 272260type: “application/pdf”[[Prototype]]: Blob
file格式:
base64格式:
data:application/pdf;base64,JVBERi0xLjMKJbrfrOAKMyAwIG9iag…
blob转base64
export const blob2base64 = (blob: Blob) => {
let a = new FileReader();
a.readAsDataURL(blob);
return new Promise((resolve) => {
a.onload = function (e) {
resolve(e.target.result);
};
});
};
base64转blob
export const base642blob: (base64: string) => Blob = (base64) => {
let arr = base64.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 });
};
base64转file
export const base642File = (base64: string, filename: string = "file") => {
const arr = base64.split(",");
const mime = arr[0].match(/:(.*?);/)[1];
const suffix = mime.split("/")[1];
const bstr = atob(arr[1]);
let n = bstr.length;
const u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], `${filename}.${suffix}`, {
type: mime,
});
};
file转base64
export const file2base64 = (file: File) => {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = (error) => reject(error);
});
};