最近在使用
Taro-UI
时,发现一个问题。
在上传图片时,Taro-UI
只提供了一个图片选择器,可以返回这个图片的临时路径,类似如下:
{
"url":"blob:http://10.1.10.122:10086/4ebc5d64-bd9a-4994-8212-addf476ba2c2",
"file": {
"path":"blob:http://10.1.10.122:10086/4ebc5d64-bd9a-4994-8212-addf476ba2c2",
"size":370876,
"type":"image/jpeg",
"lastModifiedDate":"2020-12-23T02:38:35.661Z","lastModified":1608691115661,
"name":"1608691115661.jpeg"
}
}
可以看到,图片的基本信息(大小、类型、长传时间,图片名称)。都包含在里面了,包括一个以blob:http:
开头的临时路径。
这个是不能直接传给后端的,需要转换为File
格式,通过multipart/form-data
协议才行。
把临时路径转换为File
对象,加入form-data
。
// 其中
// imgObj = 上面那个对象
// imgObj.url = blob:http://10.1.10.122:10086/4ebc5d64-bd9a-4994-8212-addf476ba2c2
const imgBlob = await fetch(imgObj.url). then(r => r.blob())
const imgFile = new File([imgBlob], imgObj.file.name , { type: imgBlob.type })
const formData = new FormData();
formData.append("file", imgFile);
const res: any = await http.post("/api/uploadFile",formData);
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。