读取并显示mysql中的BLOB图片

项目需要将存入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;

在前端界面中直接链接到我们的接口地址,这样就直接已流的形式输出到浏览器,浏览器解析后,即可显示出来,代码如下:


每天进步一点点,心情愉悦一整天哈哈。。。。。

你可能感兴趣的:(Mysql)