そのようなフォームデータを投稿したいです。
画像ファイルデータを送信するために何を準備すればよいですか?
uri、タイプ、ファイル名、サイズがあります。
その後、フェッチを使用します。
ヘッダーのコンテンツタイプは「multipart/formdata」です
助けてくれてありがとう
次のようなアップロード関数が必要です。
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;
});
});
}
そして、あなたはそれをこのように呼び出して、画像ブロブパスを送信します:
this.upload('http://exampleurl.com/someApiCall', {
file: {
uri: image.path,
type: image.mime,
name: image.name,
}
}).then(r => {
//do something with `r`
});
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);
}
次のように、FormData
のインスタンスを作成し、それをフェッチするボディとして渡す必要があります。
const data = new FormData()
data.append("something", something)
fetch(url, { method: 'POST', body: form })