SpringMVC---文件的上传与下载

一、前期准备

开发环境

  • JDK:1.8
  • Tomcat:9.0.3
  • 编译器:IntelliJ IDEA 2019
  • maven:3.6.3
  • spring:5.2.8
  • 注意:一定需要commons-fileupload和commons-io包,在maven中我已经配置了,如果不使用Maven的可以到maven repository上去下载

pom.xml配置

 
     UTF-8
     1.7
     1.7
     5.2.8.RELEASE
     1.6.6
     2.13.3

 
 
  
 
     org.springframework
     spring-beans
     ${spring.version}
 
 
 
     org.springframework
     spring-core
     ${spring.version}
  
 
     org.aspectj
     aspectjweaver
     1.6.8
 
 
 
     org.springframework
     spring-aop
     ${spring.version}
 
 
 
     org.springframework
     spring-context
     ${spring.version}
 
  
     org.springframework
     spring-context-support
     ${spring.version}
 
 
 
     org.springframework
     spring-web
     ${spring.version}
 
 
 
     org.springframework
     spring-webmvc
     ${spring.version}
 
 
 
     org.springframework
     spring-test
     ${spring.version}
 

 
     commons-fileupload
     commons-fileupload
     1.4
 
 
     commons-io
     commons-io
     2.6
 
  
     commons-logging
     commons-logging
     1.2
 

  
    TestSSM
     
         
              
                maven-clean-plugin
                3.1.0
              
             
                 maven-resources-plugin
                 3.0.2
              
              
                 maven-compiler-plugin
                 3.8.0
              
              
                 maven-surefire-plugin
                 2.22.1
              
              
                 maven-war-plugin
                 3.2.2
              
              
                 maven-install-plugin
                 2.5.2
              
              
                 maven-deploy-plugin
                 2.8.2
              
          
      
 

二、上传与下载

文件的上传

  • 需要在spring中配置一个文件解析器


 
    
     
    
     

    
     
        
        
     
  • JSP:
<%@ page contentType="text/html; charset=UTF-8" language="java" %>


 
 
 cai jin hong


 
  • 具体Controller类:
@Controller
public class UserController {
     //文件的上传
     /**
     * @param text 类型为text的input标签输入框内容,与input标签的name属性的名字一致
     * @param upload 文件对象,与类型为file的input标签中的name属性的名字一致
     * @return //跳转到一个新的页面
     * @throws IOException
     */ @RequestMapping("upload.do")
     public String upload(String text, MultipartFile upload) throws IOException {
         System.out.println(text);
         //获取文件名字
         String fileName = upload.getOriginalFilename();
         //传输到指定位置
         upload.transferTo(new File("D://test//", fileName));
         return "welcome.jsp";
    }
}

文件的下载

  • JSP:
<%@ page contentType="text/html; charset=UTF-8" language="java" %>


 
 
 cai jin hong


 文件下载

  • 具体的Controller类:
@Controller
public class UserController {
    //文件的下载
 @RequestMapping("download.do")
    public ResponseEntity upload(String fileName) throws IOException {
         System.out.println("fileName:" + fileName);
         //获取文件对象
         File file = new File("D://test//" + fileName);
         //处理中文字符集
        //        fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
         //设置响应头信息
         HttpHeaders headers = new HttpHeaders();
         headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
         headers.setContentDispositionFormData("attachment", fileName);
         byte[] b = FileUtils.readFileToByteArray(file);
         return new ResponseEntity(b, headers, HttpStatus.CREATED);
         }
}

你可能感兴趣的:(spring,spring-mvc,文件上传,文件下载,java)