【問題】Spring mvcを使用してファイルをアップロードする際に発生する問題(CommonsMultipartResolverの構成)

1391 ワード

フレームワーク:SPRING MVC
アップロードコントロール:swfupload
バックグラウンド部分コード:

@RequestMapping(value = "upload")  
private String upload(HttpServletRequest request, HttpServletResponse response) throws Exception{
    //        
    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;  
    CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("Filedata");
    // 
}

メソッドの最初の文のコードを実行するときにエラー:org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest
資料を調べてみると、springプロファイルにはmultipart解析器の構成が少なく、以下のようになっています.

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="104857600"/>
    <property name="maxInMemorySize" value="4096"/>
</bean>

問題が解決する.
------------------------
説明:
MultipartHttpServertRequestはSpring mvcが提供するアップロードコンポーネントであり、プロファイルで構成したり、注釈で実装したりすることができます.
このような問題が発生したのは、beanが構成されていない場合、requestがCommonsMultipartResolverによって処理されていないためである.
-----------------
また、アップロード時にcommon-fileupload、ioのjarパッケージを追加することを覚えています.