2013-01-07 66 views
0

我使用Spring MVC 3.0進行文件上傳, 我跟隨了幾篇關於如何使用spring上傳文件的在線教程。 但是,我一直未能獲取我的文件,它在提交表單時始終爲空。Spring 3.0處理文件上傳問題

請找我下面的代碼:

查看:

<form:form action="processXML" modelAttribute="uploadXML" method="post" enctype="multipart/form-data"> 
<div> 
    <table> 
     <tr> 
      <td> 
       <input name="uploadXML" type="file"/> 
      </td> 
     </tr> 
    </table> 
    <input type="submit"/> 
</div> 

控制器:

@RequestMapping(value="processXML", method = RequestMethod.POST) 
public ModelAndView processXML(@ModelAttribute("uploadXML") UploadXML uploadXML, ModelMap model) { 

    logger.info("Start processing import file."); 

    ModelAndView modelAndView = new ModelAndView("import"); 
    //modelAndView.addObject("courseId", courseId); 

    logger.info("Data: " + uploadXML.getFile().getName()); 
    logger.info("Data 2: " + uploadXML.getFile().getContentType()); 
    logger.info("Data 3: " + uploadXML.getFile().getSize()); 


    return modelAndView; 
} 

UploadXML.java

public class UploadXML { 

private MultipartFile file; 

public MultipartFile getFile() { 
    return file; 
} 

public void setFile(MultipartFile file) { 
    this.file = file; 
} 

}

我還包括:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/> 

到我servlet.xml中。

任何人都可以給我一些幫助嗎?

非常感謝!

回答

1

試試這個簡單的例子第一

<form:form action="processXML" method="post" enctype="multipart/form-data"> 
     <div> 
      <table> 
       <tr> 
        <td> 
         <input name="uploadXMLFile" type="file"/> 
        </td> 
       </tr> 
      </table> 
      <input type="submit"/> 
     </div> 
</form:form> 

@RequestMapping(value="processXML", method = RequestMethod.POST) 
public ModelAndView processXML(@RequestParam("uploadXMLFile") CommonsMultipartFile file, ModelMap model) { 

    logger.info("Start processing import file."); 

    ModelAndView modelAndView = new ModelAndView("import"); 
    //modelAndView.addObject("courseId", courseId); 

    logger.info("Data: " + file.getName()); 

    logger.info("Data 3: " + file.getSize()); 


    return modelAndView; 
} 
+0

它的工作原理!非常感謝。但我不明白,爲什麼MultipartFile不工作,但CommonsMultipartFile呢? – Hei

+0

我覺得問題不是與多部分..你的模型屬性名稱和輸入類型文件名是相同的..這可能是原因.. – Rajesh

+0

謝謝Rajesh!救主!!! – Hei