私は、スプリングレス2.0アプリケーションで新しいリアクティブweb-mvc実装を使用しようとしています。私は、マルチパートファイルを消費しますが:(作業、それを作るのが成功しない方法を定義しようとしている - 私はいつも415エラーを取得しSpring Reactive Web MVCがMultipartファイルを処理する方法を教えてください。
一方で、私は、次の要求のマッピングを含むコントローラを持っています。
@RequestMapping(method = RequestMethod.POST, path = "/myPath/{param}/{param2}", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseBody
public Mono<Void> postFile(
@RequestBody MultipartFile data,
@PathVariable("param") String param,
@PathVariable("param2") String param2,
@RequestHeader(name = HEADER_DATE, required = false) @DateTimeFormat(pattern = DATE_FORMAT) Instant instant
){
return fileService.handleData(Mono.just(data), param, param2, instant);
}
一方、Nettyのように基本的な依存関係の上位にサーバーを追加する必要がありました。私はspring-boot-starter-tomcat
依存関係を追加して、MultipartAutoConfiguration
をアプリケーションの自動構成
カールを使用して何かを投稿するときLL:私はこの例外を得た curl 'Meta-Date: 20170101104532' --form "[email protected]" http://localhost:8082/myPath/foo/bar
デバッグログが有効化されている間(logging.level.org.springframework.web=DEBUG
):提供: org.springframework.web.server.UnsupportedMediaTypeStatusException: Request failure [status: 415, reason: "Content type 'multipart/form-data;boundary=------------------------58fa43b8f1a26de4' not supported"]
このエラーは、次のサポートされているメディアの種類を持っているRequestBodyArgumentResolver
によってスローされます。変更されていなかったMultipartAutoConfiguration#multipartResolver matched
Content-Transfer-Encoding: binary
を設定するヘッダの追加:私のautoconfのレポートには、次のエントリが含まれているとして、ここでは関連性がないように思わ
- Spring MultiPart MediaType Unsupported:
投稿する前に、私も見てみました何でも私の理解では、その春のウェブ5.0は、私は欠場マルチパートファイル を扱うあらゆる
DecoderHttpMessageReader
を、私は、スプリング4のスプリングブートアプリケーションでこれらのクラスを見つけることができません、新しい要求デコーダシステムを使用し、まだないです
何か ?それとも、実装するのを待つべきですか?
私はそれが最新のSpring 5で利用可能だと思います、私はマルチパート用の小さなデモを書いています。ここをチェックしてください:https://github.com/hantsy/spring-reactive-sample/tree/master/multipart、do notプロジェクトの依存関係にartifact 'nio-multipart-parser'を明示的に追加することを忘れないでください。Spring Boot 2.0.0.M3ではwebflux-starterには含まれていません。 – Hantsy
今週はそれをチェックします。正しい場合は、答えを明確に示すように更新します。 –