bolb、bloburl、file、base64间的转换

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);
  });
};
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值