0

Angular 4.0とSpringBoot Applicationを使用してjsonファイルをアップロードしようとしています。私はチェックし、Stackoverflowから他のソリューションを試してみましたが、私は正確な問題が何であるか説明することはできません。FileUpload Multipart Springbootエラー - >必須のリクエストパート 'file'が存在しません

「BAD Request Error」というメッセージが表示されます。要求されたリクエストパート 'file'はありません。

My RestControllerは(テスト目的で)このように見えますが、残念ながら何も起こりません。

@RestController 
@RequestMapping("/api") 
public class UploadRequestResource { 
.... 

@PostMapping("/fileupload") 
@Timed 
public ResponseEntity<Endpoint> FileUpload(@RequestParam("file") MultipartFile file) throws URISyntaxException { 
     if (file.isEmpty()) { 
      System.out.println("File is empty"); } 

     System.out.println("File is not empty"); 

     //some logic 

     return ResponseEntity.ok() .... 
    } 
} 

私は私のapplicatoinの設定ファイルに以下を追加しました:

spring: 
    http: 
     multipart: 
      max-file-size: 5MB 
      max-request-size: 20MB 

私のHTMLファイルは、次のようになります。

<form name="editForm" role="form" novalidate (ngSubmit)="save()" #editForm="ngForm"> 
    ... 
    <input type="radio" [(ngModel)]="form.uploadType" name="uploadType" value="file">&nbsp;<label for="url">File</label><br> 
    <input type="file" name="file" placeholder="Upload file..." (change)="onFileChange($event)" (focus)="onFileFocus()"/> 
      </div> 
     </div> 

アンギュラTSファイルには、次のようになります

fileUpload(data): Observable<Endpoint> { 
     let headers = new Headers({ 'Content-Type': 'multipart/form-data' }); 
     let options = new RequestOptions({ headers: headers }); 
     return this.http.post('/api/fileupload', data , options).map((res: Response) => { 
      const jsonResponse = res.json(); 
      return this.convertItemFromServer(jsonResponse); 
     }); 
    } 

Dどのように私はこのエラーを解決する必要があります誰も考えている?私はどんな助けにも非常に恵まれています。ありがとう

+0

POSTリクエストのためにenctypeをmultipart/form-dataに更新しようとしました – MohamedSanaulla

+0

POST要求のmultipart/form-dataにenctypeを定義しました...私の最初の投稿を修正しました... – curlie

+0

私は話していました'

'タグでは、属性 'enctype'を追加できます – MohamedSanaulla

答えて

0

私は私の問題の解決策を見つけました。 Content-Type: "multipart/form-data"を使用する代わりに、Formdataを使用しました(下記参照)。

const formData = new FormData(); 
     formData.append('file', data, data.name); 
     return this.http.post('/api/fileupload', formData).map((res: Response) => { 
      const jsonResponse = res.json(); 
      return this.convertItemFromServer(jsonResponse); 

これで正常に動作します。

関連する問題