我尝试与API通信以从Iphone发送图片。我使用邮递员发送表单数据(密钥:mainPicture,值'我选择的文件')并且它运行良好。
当我尝试在js中执行此操作时出现问题:API未在我的请求中找到该文件。
这是我的代码:
const formData = new FormData();
formData.append('mainPicture', {
uri: mainPicture.uri,
type: 'image/jpg',
name: `${mainPicture.id}.jpg`,
});
// ...
// api come from apisauce package
api.post(API_RES_IMG, formData, { headers: { ['Content-Type']: 'multipart/form-data' } })
服务器说:"错误:多部分:未找到边界"
没有服务器收到的内容类型:
{"_parts":{"0":{"0":"mainPicture","1":{"uri":"assets-library://asset/asset.JPG?id=DE830A54-2526-44CB-81FE-00786D152080&ext=JPG","type":"image/jpg","name":"1e23519b-2006-4676-b63c-624e8198e17b.jpg"}}}}
从简单的事情中挣扎太多。
答案 0 :(得分:0)
我在这里看到的几个问题:
1)当使用fetch API时,我们不需要设置Content-Type标头,因为fetch会处理这个问题,而且它还会负责填充边界。我假设这与apisauce相同,但我可能错了。
2)type:'image / jpg'不是有效的mime类型。它应该是:'image / jpeg'。
答案 1 :(得分:0)
您应该添加内容类型
'Content-Type':类型==='form'吗? 'multipart / form-data':'application / json',