我需要在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);
}
但是当我在浏览器中访问它时,它没有显示任何内容(只是没有图片图标)。但是如果我读取图像字节数组,它就不是空的。 我的代码中是否有任何遗漏?
答案 0 :(得分:1)
您的代码看起来不错。确保已将ByteArrayHttpMessageConverter
添加到应用程序的http消息转换器列表中。
Java配置:
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
ByteArrayHttpMessageConverter byteConverter = new ByteArrayHttpMessageConverter();
converters.add(byteConverter);
super.configureMessageConverters(converters);
}