Я пытаюсь отправить многокомпонентный запрос с данными формы из Angular (версия 5) в бэкэнд Java, но каждый раз получаю неверный HTTP-запрос 400. Странно то, что он работает с почтальоном
- Я попытался удалить Content-Type, он не работает для меня
- Я использовал DataURL иBlob, все терпит неудачу
Угловой код:
/* Converting file to Blob */
var reader = new FileReader();
this.selectedFiles = event.target.files;
reader.readAsDataURL( event.target.files[0] );
var dataURI = reader.result;
var byteString = atob(dataURI.split(',')[1]);
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
var blob = new Blob([ab], {type: mimeString});
pushFileToStorage(file: Blob): Observable<any> {
let headers = new Headers();
headers.append('Content-Type', 'multipart/form-data;boundary='+Math.random()+';charset=UTF-8');
let options = new RequestOptions({ headers: headers }); // Create header
const formdata: FormData = new FormData();
formdata.append('file', file , 'myCustomFileName');
return this.http.post('eoffender/upload', formdata, options);
}
Базовый код Java:
@PostMapping(value = "/eoffender/upload")
public void uploadDocument(@RequestParam MultipartFile file){
System.out.println(file);
}
- Я ожидаю, что вызов хотя бы достигнет внутреннегоно это дает плохой запрос 400 ошибка