• SpringMVC为文件上传提供了直接的支持,这种支持是通过即插即用的MultipartResolver实现的。
  • Spring用Jakarta Commons FileUpload技术实现了一个CommonsMultipartResovler
  • SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下不能处理文件的上传工作,如果想使用Spring的文件上传功能,需要在上下文中配置MultipartResolver。

1、步骤

  • 导入jar包:
    commons-fileupload-1.4.jar
    commons-io-2.6.jar
  • 配置CommonsMultipartResolver:
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
        <property name="maxUploadSize" value="1024000"></property>
    </bean>
  • 前端:
    <form action="/testFileUpload" method="post" enctype="multipart/form-data">
        <p>file: <input type="file" name="file"></p>
        <p>desc: <input type="text" name="desc"></p>
        <p><input type="submit"></p>
      </form>
  • Controller:
    @RequestMapping("testFileUpload")
    public String testFileUpload(@RequestParam("desc") String desc, @RequestParam("file")MultipartFile file) {
        System.out.println("desc" + desc);
        System.out.println("OriginalFileName: " + file.getOriginalFilename());
        return "success";
    }