java 接口返回图片_SpringBoot使用@ResponseBody返回图片的实现
时间: 2023-08-06 19:07:45 浏览: 100
SpringBoot 统一请求返回的实现
5星 · 资源好评率100%
在 SpringBoot 中,使用 @ResponseBody 注解可以将方法的返回值直接写入 HTTP 响应正文中。因此,我们可以使用该注解来返回图片。
下面是一个简单的实现示例:
```java
@GetMapping("/image")
@ResponseBody
public byte[] getImage() throws IOException {
InputStream in = getClass()
.getResourceAsStream("/static/images/sample.jpg");
return IOUtils.toByteArray(in);
}
```
在上述示例中,我们通过 @GetMapping 注解将该方法映射到 /image 路径上。同时,使用 @ResponseBody 注解来指定该方法的返回值应该被写入 HTTP 响应正文中。
在 getImage 方法中,我们首先通过 getClass().getResourceAsStream() 方法获取图片的输入流,然后使用 IOUtils.toByteArray() 方法将输入流转换成字节数组。
最后,该字节数组会被直接写入 HTTP 响应正文中,从而返回给客户端。
需要注意的是,如果我们使用相对路径来获取图片的输入流,那么图片文件需要放在 src/main/resources/static 目录下。同时,我们还需要引入 Apache Commons IO 库,以便使用 IOUtils.toByteArray() 方法。
阅读全文