springboot 实现图片下载而不是在线打开
时间: 2023-12-16 09:03:51 浏览: 53
要实现图片下载而不是在线打开,可以使用 Spring Boot 的 ResponseEntity 对象。在控制器中,你可以编写一个方法来处理下载请求,并设置响应头,将 Content-Disposition 属性设置为 attachment,这样浏览器就会提示用户下载文件而不是在浏览器中打开它。
以下是一个示例代码:
```java
@GetMapping("/downloadImage")
public ResponseEntity<Resource> downloadImage() throws IOException {
// 从文件系统或其他位置获取你的图片资源
Resource resource = new FileSystemResource("/path/to/your/image.jpg");
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=image.jpg");
// 返回 ResponseEntity 对象
return ResponseEntity.ok()
.headers(headers)
.contentLength(resource.contentLength())
.contentType(MediaType.IMAGE_JPEG)
.body(resource);
}
```
这个方法将会返回一个 ResponseEntity 对象,它包含了要下载的图片资源和设置的响应头。在这个例子中,响应头的 Content-Disposition 属性被设置为 attachment,浏览器将会提示用户下载这张图片而不是在线打开它。
阅读全文