spring boot 实现文件下载
时间: 2023-08-01 12:10:14 浏览: 209
Spring Boot + thymeleaf 实现文件上传下载功能
在Spring Boot中实现文件下载可以通过以下步骤进行:
1. 创建一个Controller类并添加`@RestController`注解。
2. 在Controller类中创建一个方法,用于处理文件下载请求。可以使用`@RequestMapping`注解来指定请求路径和HTTP方法。
3. 在方法中,使用`InputStreamResource`或`FileSystemResource`来读取文件内容。
4. 创建一个`ResponseEntity`对象,并将文件内容、响应头和HTTP状态码作为参数传递。
5. 返回该`ResponseEntity`对象。
下面是一个简单的示例代码:
```java
@RestController
public class FileController {
@RequestMapping(value = "/download", method = RequestMethod.GET)
public ResponseEntity<InputStreamResource> downloadFile() throws IOException {
// 读取文件内容
File file = new File("path/to/file");
InputStreamResource resource = new InputStreamResource(new FileInputStream(file));
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + file.getName());
// 返回ResponseEntity对象
return ResponseEntity.ok()
.headers(headers)
.contentLength(file.length())
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(resource);
}
}
```
在上面的代码中,`/download`路径对应了文件下载的请求路径。当客户端访问该路径时,会触发`downloadFile()`方法,将文件内容作为响应返回给客户端。
请注意,你需要将`"path/to/file"`替换为实际的文件路径。另外,还可以根据需要定制响应头的其他属性,例如设置文件名、文件类型等。
希望对你有所帮助!如果还有其他问题,请随时提问。
阅读全文