Как исправить ошибку http 400 при отправке многочастного запроса на сервер? - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь отправить многокомпонентный запрос с данными формы из Angular (версия 5) в бэкэнд Java, но каждый раз получаю неверный HTTP-запрос 400. Странно то, что он работает с почтальоном

  1. Я попытался удалить Content-Type, он не работает для меня
  2. Я использовал 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);
}
  1. Я ожидаю, что вызов хотя бы достигнет внутреннегоно это дает плохой запрос 400 ошибка
...