请问这种data: 64位的图片 如何转化,传给后端?
请问这种data: 64位的图片 如何转化,传给后端?
我们之前都是这样传的,但是这种data:64位的不知道怎么传了?
let file = new FormData(); var img_file = files[0];
file.append('quotation_order_print_image',img_file);
回答:
async function base64ToFile(url){
return new Promise((resolver) => {
// 已知 base64 为图片 url,先加载它
const image = new Image();
image.src = url;
image.onload = () => {
// 把图片绘制到一个 canvas 上
const canvas = document.createElement('canvas');
const {width, height} = image;
canvas.width = width;
canvas.height = height;
const ctx = canvas.getContext('2d');
ctx.drawImage(image,0,0,width, height);
// canvas 转 blob
canvas.toBlob((blob) => {
// blob 转 File
const file = new File([blob], 'whatever.jpg', {type: 'image/png'});
resolver(file);
});
}
});
}
不过图片 type 信息全转为了 image/png
。
转念一想:data URL 毕竟也是 URL,那么可以直接 fetch
之:
async function base64ToFile(url = ""){ const blob = await (await fetch(url)).blob();
return new File([blob], "whatever");
}
回答:
本质上就是一个很长的字符串,就像传其他的字符串一样作为一个属性的值传过去就行了
以上是 请问这种data: 64位的图片 如何转化,传给后端? 的全部内容, 来源链接: utcz.com/p/933666.html