文件上传和下载[springmvc]
一. 文件上传
index.jsp
1 <!-- 文件上传 --> 2 <form action="testHttpMessageConverter" method="post" enctype="multipart/form-data"> 3 File: <input type="file" name="file"/> 4 Desc: <input type="text" name="desc"/> 5 <input type="submit" value="Submit"/> 6 </form>
EmployeeHandler.java
1 @Controller 2 public class EmployeeHandler { 3 4 /** 5 * 不加这个会跳转到Hello World + new DAte().jsp对应的页面, 而没有页面和这个对应 6 * 加上会直接在客户端返回Hello World + new DAte() 7 */ 8 @ResponseBody 9 @RequestMapping("/testHttpMessageConverter") 10 public String testFileUp(@RequestBody String body) { 11 System.out.println(body); 12 return "Hello World " + new Date(); 13 } 14 }
运行:
后台打印:
二. 文件下载
准备下载的文件:
index.jsp
1 <!-- 文件下载 --> 2 <form action="testResponseEntity" method="post" enctype="multipart/form-data"> 3 File: <input type="file" name="file"/> 4 Desc: <input type="text" name="desc"/> 5 <input type="submit" value="Submit"/> 6 </form>
EmployeeHandler.java
1 @Controller 2 public class EmployeeHandler { 3 4 @RequestMapping("/testResponseEntity") 5 public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws IOException { 6 byte []body = null; 7 ServletContext servletContext = session.getServletContext(); 8 InputStream in = servletContext.getResourceAsStream("/files/abc.txt"); 9 body = new byte[in.available()]; 10 in.read(body); 11 12 HttpHeaders headers = new HttpHeaders(); 13 headers.add("Content-Disposition", "atachment;filename=abc.txt"); 14 15 HttpStatus statusCode = HttpStatus.OK; 16 17 ResponseEntity<byte[]> response = new ResponseEntity<byte[]>(body, headers, statusCode); 18 return response; 19 } 20 }
运行: