SpringMVC——文件的上传

一、加入依赖

commons-io-2.0.jar
commons-fileupload-1.2.1.jar

二、接口MultipartResolver

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

三、配置 MultipartResolver

defaultEncoding: 必须和用户 JSP 的 pageEncoding 属性一致,以便正确解析表单的内容

<!--配置MultipartResolver 文件上传-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8"></property>
        <property name="maxUploadSize" value="5242880"></property>
    </bean>

注意:id的值必须是mutipartResolver。

四、文件上传表单

<form action="${pageContext.request.contextPath}/test/testFileUpload" enctype="multipart/form-data" method="post">
    <input type="file" name="file">
    <input type="submit" value="上传">
  </form>

五、Cotroller请求映射

   /**
     * 测试文件下载
     * @param multipartFile
     * @return
     */
    @RequestMapping("/testFileUpload")
    public String testFileUpload(@RequestParam("file")MultipartFile multipartFile, Map<String,Object> map) throws IOException {
        //文件的原始名
        String originalFileName = multipartFile.getOriginalFilename();
        //文件的大小
        Long  size = multipartFile.getSize();
        //form表单的name值
        String name = multipartFile.getName();
        if(multipartFile!=null){
            //将文件复制到目标目录
            multipartFile.transferTo(new File("D://upload//"+originalFileName));
        }
        map.put("originalFileName",originalFileName);
        map.put("size",size);
        map.put("name",name);
        return SUCCESS;
    }
原文地址:https://www.cnblogs.com/realshijing/p/8195608.html