WEB项目中图片的显示

图片的显示常用的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);
	});
});
四、效果



猜你喜欢

转载自blog.csdn.net/qq_33422712/article/details/79159547