blob类型的图片转换成base64格式时的错误

我的项目使用的是element-ui和vue.js搭配做的前端,element-ui的上传图片插件提取的图片文件是这种格式:blob:http://administer.abc.local/ea15d81d-3704-4e49-8c93-971336e8f08d

我百度了一下把它转成base64编码传给后台的方法,并且照着写:

let data;
let blob = 'blob:http://administer.abc.local/ea15d81d-3704-4e49-8c93-971336e8f08d'
let reader = new window.FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function() {
    data = reader.result;
    console.log(data);
}

但是报了这个错误:

clipboard.png

求大佬帮看看哪里出了问题?

阅读 8.4k
3 个回答

你的blob是个字符串。
拿走,不谢。直接运行以下代码会报跨域,你换个你同域地址。或者装个浏览器跨域插件

fetch(`https://static.segmentfault.com/v-5a7c12fe/global/img/logo-b.svg`).then(data=>{
    const blob = data.blob();
    return blob;
}).then(blob=>{
    let reader = new window.FileReader();
    
    reader.onloadend = function() {
        const data = reader.result;
        console.log(data);
    };

    reader.readAsDataURL(blob);
})

clipboard.png

这不是写了吗?参数第一个不是blob

let blob = 'blob:http://administer.abc.local/ea15d81d-3704-4e49-8c93-971336e8f08d'

你这样写blob是个String类型了,不是Blob类型

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题