2013-01-07 69 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