2017-05-25 6 views
0

私は、Spring MVCアプリケーションのマルチパートファイルのアップロードに関する問題について、stackoverflowに関する多くの回答を見てきました。 ステップバイステップ私は他の人がしたエラーを繰り返さないようにしました。ここでSpring MVCマルチパートファイルのアップロード

は私のフォームは、私は、依存関係

<dependency> 
    <groupId>commons-fileupload</groupId> 
    <artifactId>commons-fileupload</artifactId> 
    <version>1.3.2</version> 
</dependency> 

は、コントローラクラスに要求するためにマッピングされたアプリ-servlet.xml

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
     <!-- max upload size in bytes --> 
     <property name="maxUploadSize" value="20971520" /> <!-- 20MB --> 
     <!-- max size of file in memory (in bytes) --> 
     <property name="maxInMemorySize" value="1048576" /> <!-- 1MB --> 
</bean> 

方法でmultipartResolverを宣言したPOMファイルで

<form class="form-horizontal" data-toggle="validator" 
         id="track_existing_repair" 
         method="post" 
         action="/euo/testUpload.htm" 
         enctype="multipart/form-data"> 

... 
     <div class="form-group required"> 
         <label class="control-label col-sm-4" for="proofOfPurchaseInput">Select File:</label> 
         <div class="col-sm-8"> 
         <input name="proofOfPurchase" 
          id="proofOfPurchaseInput" 
          type="file" 
          required/> 
        </div> 
       </div> 
... 
</form> 

です

@RequestMapping(value = {"/testUpload"},headers = "Content-Type=multipart/form-data", method = RequestMethod.POST) 
public String testUpload( 
      @RequestPart(value = "proofOfPurchase", required = false) MultipartFile proofOfPurchaseFile 
      ,HttpServletRequest request 
      ) throws InvalidFormatException, IOException { 
if(proofOfPurchaseFile != null){ 
    readFile(proofOfPurchaseFile); 
} 
return NAV_HOME; 
} 
  • は私が@RequestParamではなく、必要ななければ

  • を@RequestPart試してみました=偽私は応答 "必須の要求部が 'proofOfPurchaseが'存在しない" を持っているので、私はそれを作りましたは不要です デバッガでリクエストを調べるには、

私がデバッガで停止したとき、私は要求オブジェクトがファイルが受信され、jBossの一時フォルダに格納されていることを示すことに驚くことはありませんでした。

request object

私は春がアップロードされたファイルを見ることができないことを見逃すことができるかを指摘していただけますか?

答えて

0

問題は、Strutsも使用するレガシープロジェクトに表示されます。 strutsディスパッチャーがSpring CommonsMultipartResolverと何とか衝突することが判明しました。

web.xmlからすべてのstrutsサーブレットとフィルタを削除したら、すべてが機能し始めます。

関連する問題