返回
Spring MVC 文件上传与下载
后端
2023-09-07 06:25:35
Spring MVC 是一个基于 Java 的 Web 框架,它提供了简单便捷的方式来处理文件上传和下载。本文将介绍如何在 Spring MVC 中使用注解来实现文件上传和下载。
文件下载
在 Spring MVC 中,文件下载可以通过 @RequestMapping
注解来实现。我们只需要在控制器中定义一个方法,并使用 @RequestMapping
注解来指定该方法的请求路径。在方法体中,我们可以使用 ResponseEntity
来生成一个包含文件的响应。
@RequestMapping(value = "/download")
public ResponseEntity<byte[]> download() {
// 获取要下载的文件
byte[] file = ...;
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDisposition(ContentDisposition.attachment().filename("file.txt").build());
// 生成响应实体
ResponseEntity<byte[]> responseEntity = new ResponseEntity<>(file, headers, HttpStatus.OK);
return responseEntity;
}
上面的代码中,我们首先获取要下载的文件。然后,我们设置响应头。Content-Type
头指定了文件的 MIME 类型,Content-Disposition
头指定了文件的名称和附件类型。最后,我们生成一个包含文件的响应实体。
文件上传
在 Spring MVC 中,文件上传可以通过 @PostMapping
注解来实现。我们只需要在控制器中定义一个方法,并使用 @PostMapping
注解来指定该方法的请求路径。在方法体中,我们可以使用 MultipartHttpServletRequest
来获取上传的文件。
@PostMapping(value = "/upload")
public String upload(MultipartHttpServletRequest request) {
// 获取上传的文件
MultipartFile file = request.getFile("file");
// 保存文件
...
// 返回结果
return "redirect:/";
}
上面的代码中,我们首先获取上传的文件。然后,我们保存文件。最后,我们返回结果。
总结
Spring MVC 提供了简单便捷的方式来处理文件上传和下载。我们可以使用 @RequestMapping
注解来实现文件下载,也可以使用 @PostMapping
注解来实现文件上传。