springboot实现文件下载
时间: 2023-10-14 10:27:08 浏览: 88
要实现 Spring Boot 中的文件下载功能,可以按照以下步骤进行:
1. 在 Controller 中定义一个下载文件的接口:
```java
@GetMapping("/download")
public ResponseEntity<Resource> downloadFile(@RequestParam String fileName) {
// TODO: 根据文件名获取文件路径
Path filePath = ...;
// 创建 Resource 对象
Resource resource = new FileSystemResource(filePath);
// 构建响应头
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fileName);
// 返回 ResponseEntity 对象
return ResponseEntity.ok()
.headers(headers)
.contentLength(resource.contentLength())
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(resource);
}
```
2. 根据文件名获取文件路径,可以使用以下代码:
```java
Path filePath = Paths.get("path/to/files", fileName);
```
其中 `"path/to/files"` 是存放文件的目录路径。
3. 在响应头中设置 `Content-Disposition`,以告诉浏览器下载文件而不是在浏览器中打开。
4. 使用 `FileSystemResource` 创建 `Resource` 对象,用于返回给客户端。
5. 返回 `ResponseEntity` 对象,并在其中设置文件内容、文件类型和响应头等信息。
经过以上步骤,就可以实现 Spring Boot 中的文件下载功能了。
阅读全文