项目需要将存入mysql数据库中的图片显示出来,Controller中方法如下:
@RequestMapping(value="/showPicture.do",method=RequestMethod.GET)
public void getPhotoById (int id,HttpServletResponse response) throws IOException{
ShowPictureEntity entity = xxxService.findById(id);
byte[] data = entity.getPicture();
response.setContentType("image/jpeg");
response.setCharacterEncoding("UTF-8");
OutputStream outputSream = response.getOutputStream();
InputStream in = new ByteArrayInputStream(data);
int len = 0;
byte[] buf = new byte[1024];
while ((len = in.read(buf, 0, 1024)) != -1) {
outputSream.write(buf, 0, len);
}
outputSream.close();
}
注意 entity.getPicture(); 方法返回的是二进制的数组,在对于的实体类中代码如下:
........
.........
private byte[] picture;
在前端界面中直接链接到我们的接口地址,这样就直接已流的形式输出到浏览器,浏览器解析后,即可显示出来,代码如下:
<img src="$!{appRoot}/picture/showPicture.do?id=123"/>
每天进步一点点,心情愉悦一整天哈哈。。。。。