マルチパートファイルに@RequestParamを使用するのは正しい方法ですか? 質問する

マルチパートファイルに@RequestParamを使用するのは正しい方法ですか? 質問する

私はSpring MVCアプリケーションを開発しており、コントローラでマルチパートリクエストを処理したいと考えています。私が渡しているリクエストではMultiPartFile、現在ファイルパラメータを取得するために使用しており@RequestParam、メソッドは次のようになります。

@RequestMapping(method = RequestMethod.POST)
public def save(
        @ModelAttribute @Valid Product product,
        @RequestParam(value = "image", required = false) MultipartFile file) {
    .....
}

上記のコードは私のサービスではうまく機能し、ファイルはサーバー側で取得されます。どこかで、そのファイルでは@RequestPartの代わりにアノテーションを使用する必要があると見ました@RequestParam。ファイルに使用すると何か問題がありますか@RequestParam? または、将来何らかのエラーが発生する可能性がありますか?

ベストアンサー1

@RequestParamファイルを使用しても問題ありませんMultipart

@RequestParam アノテーションは、"multipart/form-data" リクエストの一部を、同じメソッド引数タイプをサポートするメソッド引数に関連付けるためにも使用できます。主な違いは、メソッド引数が文字列でない場合、@RequestParam は登録された Converter または PropertyEditor によるタイプ変換に依存するのに対し、@RequestPart はリクエスト部分の 'Content-Type' ヘッダーを考慮して HttpMessageConverters に依存することです。@RequestParam は名前と値のフォーム フィールドで使用される可能性が高く、@RequestPart はより複雑なコンテンツ (JSON、XML など) を含む部分で使用される可能性が高くなります。

見るhttp://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestPart.html

おすすめ記事