现阶段业务需求将app 发布为网站版,但是选择图片后 返回的是blob的网络地址,后台设置的是只能接受img图片 像APP 端一样传图片地址 img地址如:_doc/....XX.jpg
我就使用了
blobOrFileToDataURL: function (obj, callback) {
var flag = callback && typeof callback === "function";
var reader = new FileReader();
reader.readAsDataURL(obj);
reader.onload = function (e) {
if (!flag) return e.target.result;
callback(e.target.result);
};
},
blobOrFileToImage: function (obj, callback) {
console.log(obj)
var flag = callback && typeof callback === "function";
ESUtils.fn.blobOrFileToDataURL(obj, function (dataurl) {
var img = new Image();
img.src = dataurl;
if (!flag) return img;
callback(img);
});
}
这两个函数来转换
uni.chooseImage({
count: 8,
success: res => {
uni.showModal({
title:"",
content:JSON.stringify(res)
})
if (res.errMsg == 'chooseImage:ok') {
res.tempFilePaths.map(item => {
ESUtils.fn.blobToImage(item,res=>{
uni.showModal({
title:"",
content:JSON.stringify(res)
})
});
this.imgList.push(item);
if (this.imgList.length > 8) {
this.imgList = this.imgList.slice(0, 8);
}
});
}
}
});
然后再chooseImage中打出来看是否转换成功,但是返回了
Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'.
告诉我 item 不是blob格式的
我通过弹出框查看了返回的地址是 tempFilePaths:["blob:http://域名/id"]。
请问这个我怎么解决呢,
最终 我是想把blob变成像 "_doc/....XX.jpg"这样的。
还有就是 不转换 使用formData来上传
可是 我不想用formData ,改动太多
易软 (作者)
???返回的二进制数据?返回的是一个Blob对象啊
2021-12-16 15:41