6

我需要在我的 Spring 控制器中返回图像。我尝试在这个Spring MVC 中回答:如何在 @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);
}

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

4

1 回答 1

1

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

Java配置:

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    ByteArrayHttpMessageConverter byteConverter = new ByteArrayHttpMessageConverter();
    converters.add(byteConverter);
    super.configureMessageConverters(converters);
}
于 2015-11-03T10:59:09.457 回答