我正在从数据库获取图像数据(作为byte[]
)。如何在@ResponseBody
中返回此图像?
编辑
我没有使用@ResponseBody
作为方法参数使用HttpServletResponse
做到了:
@RequestMapping("/photo1")
public void photo(HttpServletResponse response) throws IOException {
response.setContentType("image/jpeg");
InputStream in = servletContext.getResourceAsStream("/images/no_image.jpg");
IOUtils.copy(in, response.getOutputStream());
}
将@cc与已注册的
@ResponseBody
转换器一起使用@cc作为@Sid对我不起作用:(。@ResponseBody
@RequestMapping("/photo2")
public byte[] testphoto() throws IOException {
InputStream in = servletContext.getResourceAsStream("/images/no_image.jpg");
return IOUtils.toByteArray(in);
}
最佳答案
如果您使用的是Spring 3.1或更高版本,则可以在@RequestMapping
批注中指定“产生”。下面的示例对我来说开箱即用。如果启用了Web MVC(@EnableWebMvc
),则不需要寄存器转换器或其他任何东西。
@ResponseBody
@RequestMapping(value = "/photo2", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
public byte[] testphoto() throws IOException {
InputStream in = servletContext.getResourceAsStream("/images/no_image.jpg");
return IOUtils.toByteArray(in);
}
关于spring-mvc - Spring MVC:如何在@ResponseBody中返回图像?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48862677/