返回
SpringMVC文件上传下载-Java 入门教程详解
后端
2023-11-11 17:57:35
## 九、文件上传和下载
在SpringMVC中,文件上传和下载是两个非常重要的功能。文件上传可以将文件从客户端上传到服务器,而文件下载可以将文件从服务器下载到客户端。
### 1、文件下载
#### 使用 ResponseEntity 实现下载文件的功能
SpringMVC中,可以使用ResponseEntity来实现文件下载的功能。ResponseEntity是一个泛型类,它可以用来表示HTTP响应。我们可以通过ResponseEntity来设置HTTP响应的状态码、响应头、响应体等信息。
```java
@RequestMapping(value = "/download")
public ResponseEntity<byte[]> download() throws IOException {
// 获取要下载的文件路径
String filePath = "/Users/test/Downloads/test.txt";
// 创建ResponseEntity对象
ResponseEntity<byte[]> responseEntity = ResponseEntity.ok()
.header("Content-Disposition", "attachment; filename=" + URLEncoder.encode("test.txt", "UTF-8"))
.body(Files.readAllBytes(Paths.get(filePath)));
// 返回ResponseEntity对象
return responseEntity;
}
上面的代码中,我们首先获取要下载的文件路径,然后创建ResponseEntity对象。在创建ResponseEntity对象时,我们可以设置HTTP响应的状态码、响应头、响应体等信息。最后,我们返回ResponseEntity对象。
2、文件上传
SpringMVC的文件上传功能非常强大,它支持多种文件上传方式,并且可以对文件上传进行限制。
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String upload(@RequestParam("file") MultipartFile file) {
// 获取上传的文件
String fileName = file.getOriginalFilename();
// 保存上传的文件
file.transferTo(new File("/Users/test/Downloads/" + fileName));
// 返回上传文件的路径
return "/success";
}
上面的代码中,我们首先获取上传的文件。然后,我们将上传的文件保存到指定的位置。最后,我们返回上传文件的路径。
SpringMVC的文件上传功能非常强大,它支持多种文件上传方式,并且可以对文件上传进行限制。这使得SpringMVC非常适合开发文件上传下载功能的应用程序。