图片的显示常用的2种方式。
1.图片上传后把图片的位置存放在数据库。显示时用<img src="路径"/>
2.图片上传后把图片存放在数据库中,推荐用blob类型存放。显示时用<img src="data:image/png;base64,图片的base64码">
下文介绍第二种。
java 用 byte[] 接收blob数据。如果使用的是springMVC且用@ResponseBody。则直接返回对象就可以了,SpringMVC可以自动的帮你将对象中的byte[]转换成base64。
现在使用返回对象的方式:
准备、数据库数据。
一、控制层测试代码
@ResponseBody
@GetMapping("/bytes/{id}")
public Cs bytes(@PathVariable String id) {
return csMapper.selectByPrimaryKey(id);
}
二、javabean代码
public class Cs {
private String id;
private byte[] pic;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public byte[] getPic() {
return pic;
}
public void setPic(byte[] pic) {
this.pic = pic;
}
}
三、测试结果
四、页面代码
<script type="text/javascript" src="./static/js/jquery.js"></script>
<body>
<img id="test" src="">
</body>
<script type="text/javascript">
$(function() {
$.get("bytes/1",function (data) {
$("#test").attr("src","data:image/png;base64,"+data.pic);
},"json");
});
五、效果
只返回base64字符串的方式:
一、控制层测试代码
@ResponseBody
@GetMapping(value="/bytes2/{id}")
public String bytes2(@PathVariable String id) {
byte[] bytes = csMapper.selectByPrimaryKey(id).getPic();
return Base64.encodeBase64String(bytes);
}
二、测试结果
三、页面代码
<script type="text/javascript">
$(function() {
$.get("bytes2/1",function (data) {
$("#test").attr("src","data:image/png;base64,"+data);
});
});
四、效果