SpringBoot+Vue回显BLOB类型的Oracle数据库

接上一篇文章:SpringBoot+Vue 图片上传保存到类型为BLOB类型的Oracle数据库(数据库可以直接看图片)

SpringBoot+Vue回显BLOB类型的Oracle数据库图片


前言

存放到BLOB类型的Oracle数据库的图片回显是需要把字节流转为Base64才可以在前端显示出来


前端正文

<img style="width: 200px; height: 270px;border-radius: 6px" :src="'data:image/png;base64,'+form.tx"/>

注意: ‘data:image/png;base64,’ 这一段代码代码是需要加的,不然图片解析不出来。其实这就是所谓的 Data URI scheme。 直译过来的意思是:URI 数据处理方案…
Data URI scheme支持的类型有:

data: 文本数据
data: text/plain, ------- 文本数据
data: text/html, -------- HTML代码
data: text/html;base64, -------- base64编码的HTML代码
data: text/css, ---------- CSS代码
data: text/css;base64, ---------- base64编码的CSS代码
data: text/javascript, ------------ Javascript代码
data: text/javascript;base64, --------- base64编码的Javascript代码
data: image/gif;base64, ---------------- base64编码的gif图片数据
data: image/png;base64, -------------- base64编码的png图片数据
data: image/jpeg;base64, ------------- base64编码的jpeg图片数据
data: image/x-icon;base64, ---------- base64编码的icon图片数据

后台正文

代码如下(示例):

	/**
	* 查询教师信息
	*
	* @param zgh 教师信息主键
	* @return 教师信息
	*/
    @Override
    public JsJsxxb selectJsJsxxbByZgh(String zgh){
        //先查询图片表 有数据就返回回来
        JsJszpb jsJszpb = jsJszpbMapper.selectJsJszpbByZgh(zgh);
        //图片表有数据 不为空
        if (jsJszpb != null){
            String zp_string = "";
            //存放字节流的byte数组
            byte[] zpBlob = jsJszpb.getZp();
            if (Optional.ofNullable(zpBlob).isPresent()){
                //转Base64
                byte[] encodeBase64 = Base64.encodeBase64(zpBlob);
                //转字符串Base64
                zp_string = new String((encodeBase64));
            }
            //查询出教师信息数据 将教师图片设置到教师信息实体类的tx里面
            JsJsxxb jsJsxxb = jsJsxxbMapper.selectJsJsxxbByZgh(zgh);
            jsJsxxb.setTx(zp_string);
            return jsJsxxb;
        }else{
            return jsJsxxbMapper.selectJsJsxxbByZgh(zgh);
        }
    }

zp_string就是一个String类型的Base64字符串。

String zp_string = "";
//存放字节流的byte数组
byte[] zpBlob = jsJszpb.getZp();
if (Optional.ofNullable(zpBlob).isPresent()){
    //转Base64
    byte[] encodeBase64 = Base64.encodeBase64(zpBlob);
    //转字符串Base64
    zp_string = new String((encodeBase64));
}

这段代码就是将字节流转为Base64字符串。赋值到实体类中返回前端

前端展示

这就是回显的样子

总结

BLOB类型的图片回显需要先转为Base64的字符串,再加上URI 数据处理方案(:src=“‘data:image/png;base64,’+form.tx”)用img解析就出来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值