springmvc返回图片流
时间: 2023-09-02 17:03:33 浏览: 253
SpringMVC返回图片的几种方式(小结)
在Spring MVC中返回图片流的方法有很多种,以下是其中一种常见的实现方式:
首先,在控制器方法中使用`ResponseEntity<byte[]>`作为返回类型,表示返回的是字节数组,即图片的二进制数据。
然后,通过`Resource`类的静态方法`Loader.getResourceAsStream()`来获取图片资源的输入流。例如,如果图片位于项目的`/resources/images/`目录下,可以使用`ResourceLoader`进行读取,代码如下:
```
@Autowired
private ResourceLoader resourceLoader;
@GetMapping("/image")
public ResponseEntity<byte[]> getImage() throws IOException {
Resource resource = resourceLoader.getResource("classpath:images/image.jpg");
InputStream inputStream = resource.getInputStream();
byte[] imageBytes = IOUtils.toByteArray(inputStream);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG);
return new ResponseEntity<>(imageBytes, headers, HttpStatus.OK);
}
```
在这个例子中,图片文件位于`/resources/images/`目录下,并且命名为`image.jpg`。
最后,设置`Content-Type`头为`image/jpeg`,表示返回的是JPEG格式的图片,将字节数组和Http状态码`HttpStatus.OK`一起封装成`ResponseEntity<byte[]>`对象进行返回。
这样,当访问`/image`路径时,控制器方法将返回图片的二进制数据,并且浏览器会将其作为图片显示出来。
阅读全文