在开发中,项目不需要太多图片资源的时候,如果单独做图片服务器会造成浪费,如果把图片存放在本地又不得不考虑数据迁移的问题;所以可以把图片存放在数据库中,以二进制的方式存储。
图片以二进制的形式存入数据库
前端通过ajax传给后端MultiparFile file,后台把file转换成二进制数组byte[] b = file.getBytes(),然后把b存入数据库中。
数据库中取出二进制然后到页面上显示出来
先取出二进制数组,然后对字节数组Base64编码
先声明:
BASE64Encoder encoder = new BASE64Encoder();
转换
base64Str = encoder.encode(b);
然后直接传给前台,页面显示:
$("#img").attr("src","data:image/jpg;base64,"+e.base64Str);
注意:只有加上data:image/jpg;base64图片才能正常显示。