0

Postman からファイルをアップロードするリクエストを実行できますが、Angular からリクエストを実行すると、「必要な MultipartFile パラメータ 'ファイル' が存在しません」という WARN が返されます。

API の私のリソースに従います。

@PostMapping
public ResponseEntity<Conteudo> publicaConteudo(@RequestParam("file") MultipartFile file) throws JsonParseException, JsonMappingException, IOException {
    /* ANYTHING */
    return ResponseEntity.ok(new Conteudo());
}

そしてAngularでの私のサービス。私は JWT を使用していますが、HttpClient を使用してリクエストを実行しようとしています。

upload(file: File, conteudo: Conteudo): Promise<any> {
   let formData: FormData = new FormData();

   formData.append('file', file, file.name);

  /* USING JWT
   return this.http.post(this.conteudoUrl, formData)
    .toPromise()
    .then(response => response.json());
  */
     let h1 = new HttpHeaders().set('Authorization', 'Bearer ' + localStorage.getItem('token'));
     const req = new HttpRequest('POST',this.conteudoUrl, formData, {
         headers: h1
  });
  return this.httpClient.request(req).toPromise();
 }

Postman でできること

ここに画像の説明を入力

Bean MultipartResolver などを作成するなど、見つけた多くの解決策を試しましたが、どれも私の問題を解決し、もっと興味深いと思うのは、Postman で問題なく動作することです。

4

1 に答える 1