springboot文件下载实现代码
时间: 2023-08-30 20:06:43 浏览: 107
下面是一个基于 Spring Boot 的文件下载实现代码示例:
```java
@RestController
public class FileDownloadController {
@GetMapping("/download")
public ResponseEntity<Resource> downloadFile() throws IOException {
// 读取要下载的文件
Path path = Paths.get("path/to/file");
ByteArrayResource resource = new ByteArrayResource(Files.readAllBytes(path));
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=filename.ext");
// 返回响应实体
return ResponseEntity.ok()
.headers(headers)
.contentLength(resource.contentLength())
.contentType(MediaType.parseMediaType("application/octet-stream"))
.body(resource);
}
}
```
上述代码中,我们使用 ResponseEntity 类来构建响应实体,其中:
- 响应主体使用 ByteArrayResource 类型,该类可以将 byte 数组转换成 Resource 接口的实现类。
- HttpHeaders.CONTENT_DISPOSITION 头指示将响应作为附件下载,filename 参数指定下载时的文件名。
- contentLength() 方法返回资源的字节数。
- MediaType.parseMediaType() 方法设置响应主体的媒体类型为二进制流。
需要注意的是,上述代码中的文件路径需要指定为实际可用的路径。
阅读全文