java通过ResponseEntity文件下载
时间: 2024-01-28 18:06:29 浏览: 118
Java response响应体和文件下载实现原理
可以通过以下代码实现在Java中使用ResponseEntity下载文件:
```java
@GetMapping("/download")
public ResponseEntity<Resource> downloadFile() throws IOException {
String filename = "example.pdf";
Resource file = new FileSystemResource(filename);
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + filename);
return ResponseEntity.ok()
.headers(headers)
.contentLength(file.contentLength())
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(file);
}
```
在这个例子中,我们使用了`FileSystemResource`来读取文件,但你可以根据自己的需求选择其他的`Resource`实现。在`ResponseEntity`中,我们设置了headers来告诉浏览器在下载时应该使用一个附件,而不是直接在浏览器中打开它。我们还设置了文件的content length和content type,以便浏览器可以正确地处理下载。
当你访问`/download`时,浏览器将自动弹出一个文件下载对话框,并提示用户保存文件。
阅读全文