前端项目实战之Base64与File对象(文件对象)互相转化

base64 转 file

/**
 * base64转换为file类型
 * @param base64Url
 * @param filename
 * @returns
 */
export const base64UrlToFile = (base64Url, filename) => {
    
    
  const arr = base64Url.split(',');
  const mime = arr[0].match(/:(.*?);/)[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, {
    
     type: mime });
};

file 转 base64

/**
 * 通过文件流获取图片的Base64格式的数据
 * @param file
 * @returns
 */
export const getBase64ByFile = (file: any) => {
    
    
  return new Promise((resolve, reject) => {
    
    
    const reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = () => resolve(reader.result);
    reader.onerror = error => reject(error);
  });
};

猜你喜欢

转载自blog.csdn.net/yiguoxiaohai/article/details/125945252