vue 如何将src是base64的图片转化成file对象


vue 如何将src是base64的图片转化成file对象

在Vue中,你可以通过将base64字符串转换为Blob对象,然后使用Blob对象创建一个File对象。以下是一个简单的方法来实现这一转换:

methods: {
  base64ToFile(base64Data, filename) {
    // 将base64的数据部分提取出来
    const arr = base64Data.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);
    }
 
    // 将Uint8Array转换为Blob对象
    const blob = new Blob([u8arr], { type: mime });
 
    // 创建File对象
    const file = new File([blob], filename, { type: mime });
 
    return file;
  }
}

 使用这个方法时,你需要传入base64字符串和你想要设置的文件名。例如,如果你有一个base64编码的图片字符串,你可以这样使用这个方法:

// 假设你的base64图片字符串是这样的
const base64Str = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...';
 
// 你想要的文件名
const filename = 'image.png';
 
// 转换为File对象
const file = this.base64ToFile(base64Str, filename);
 
// 现在你可以使用这个file对象了,例如可以用来设置图片的src属性
// 或者作为表单提交的一部分

请注意,这个方法假设base64字符串是有效的,并且已经包含了正确的MIME类型。如果base64字符串不是有效的或者MIME类型不正确,这段代码可能不会工作。

 

posted @ 2024-03-26 17:52  维维WW  阅读(922)  评论(0编辑  收藏  举报