我想发布这样的表单数据。
我应该准备什么来发送图像文件数据?
我有Uri,类型,文件名,大小。
然后将使用fetch。
标题中的内容类型是'multipart / formdata'
感谢您的帮助
答案 0 :(得分:12)
你应该有一个上传功能,它应该是这样的:
upload(url, data) {
let options = {
headers: {
'Content-Type': 'multipart/form-data'
},
method: 'POST'
};
options.body = new FormData();
for (let key in data) {
options.body.append(key, data[key]);
}
return fetch(requestUrl, options)
.then(response => {
return response.json()
.then(responseJson => {
//You put some checks here
return responseJson;
});
});
}
你这样称呼它,发送图像blob路径:
this.upload('http://exampleurl.com/someApiCall', {
file: {
uri: image.path,
type: image.mime,
name: image.name,
}
}).then(r => {
//do something with `r`
});
答案 1 :(得分:0)
您需要创建一个FormData
的实例,并将其作为正文提取传递,如下所示:
const data = new FormData()
data.append("something", something)
fetch(url, { method: 'POST', body: form })
答案 2 :(得分:0)
fetch("url" ,{
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
method:'POST',
body: JSON.stringify(this.state.imageholder)
}).catch(function(error) {
console.log('There has been a problem with your fetch operation: ' + error.message);
throw error;
});
@PostMapping(value="/",consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> saveCustomerOrder(@RequestBody String[] file) throws SerialException, SQLException {
TestImg imgObj=null;
for (String img : file) {
imgObj=new TestImg();
byte[] decodedByte = Base64.getDecoder().decode(img);
Blob b = new SerialBlob(decodedByte);
imgObj.setImg(b);
testRepo.save(imgObj);
}