2017-03-28 5 views
0

私は、スプリングレス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

  • set content-type to utf-8 with angularjs $httpContent-Transfer-Encoding: binaryを設定するヘッダの追加:私のautoconfのレポートには、次のエントリが含まれているとして、ここでは関連性がないように思わ

    • Spring MultiPart MediaType Unsupported

      投稿する前に、私も見てみました何でも私の理解では、その春のウェブ5.0は、私は欠場マルチパートファイル を扱うあらゆるDecoderHttpMessageReaderを、私は、スプリング4のスプリングブートアプリケーションでこれらのクラスを見つけることができません、新しい要求デコーダシステムを使用し、まだないです

    何か ?それとも、実装するのを待つべきですか?

  • 答えて

    1

    さて、現在この機能のためにプル要求が存在するとして、これはちょうど今のところ実装されていないようだ。Add reactive multipart request support #1201

    は、この以前のバージョンをチェックしましたら...

    [EDIT]:問題はありSpringのmasterブランチに統合されました。もはや問題にならないはずです。

    +2

    私はそれが最新の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

    +0

    今週はそれをチェックします。正しい場合は、答えを明確に示すように更新します。 –

    関連する問題