如何将Spring REST中的图像返回到浏览器

时间:2015-11-03 01:56:24

标签: spring image rest controller spring-rest

我需要在Spring控制器中返回图像。 我尝试在Spring MVC: How to return image in @ResponseBody?中回答,但它不起作用

我的代码就像这样

@RequestMapping(value = "cabang/photo", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<byte[]> getPhoto() throws IOException {

     File imgPath = new File("D:\\test.jpg");

    byte[] image = Files.readAllBytes(imgPath.toPath());
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.IMAGE_JPEG);
    headers.setContentLength(image.length);
    return new ResponseEntity<>(image, headers, HttpStatus.OK);
}

但是当我在浏览器中访问它时,它没有显示任何内容(只是没有图片图标)。但是如果我读取图像字节数组,它就不是空的。 我的代码中是否有任何遗漏?

1 个答案:

答案 0 :(得分:1)

您的代码看起来不错。确保已将ByteArrayHttpMessageConverter添加到应用程序的http消息转换器列表中。

Java配置:

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    ByteArrayHttpMessageConverter byteConverter = new ByteArrayHttpMessageConverter();
    converters.add(byteConverter);
    super.configureMessageConverters(converters);
}