数据库BLOB类型在前端转化为图片格式问题

今天调一个接口返回的是一个byte数组 想的是直接把它里面的东西丢到img的src属性里面就行了 但是结果是显示失败 <img src=" /9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAgFBgcGBQgHBgcJCAgJDBMMDA
sLDBgREg4THBgdHRsYGxofIywlHyEqIRobJjQnKi4vMTIxHiU2OjYwOiwwMTD/
2wBDAQgJCQwKDBcMDBcwIBsgMDAwMDAwMDAwMDAwMDAwMDAwMDA
wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDD/wgARCAF5
AR4DASEAAhEBAxEB/8QAGwAAAgMBAQEAAAAAAAAAAAAAAQIAAwQFB
gf/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQL/2gAMAwEAAhADEAAAAfa
W4oBBUJAGBiSLIklErAkhIQkCmuHtTNaoBACEJIhUY0IADEMBAwkAVleT2J
RZQFQAksNhkQUmCOXXHU1VpeowYQgIBKEDfJnemWoCSCKYHJ89lh5M
FE1IdTo6dXq26DUMSARQkh0xmtoygKEiMDlHzvLmWuBC5IstrR6SvSvqkkg
UiU5raEz20DQlCRErheOy5ljMkJnq/RDpa2mN3qtOy1pgYKmKugz22SaAEh
V5HLh8dm1oSFOqq6pbb7K7C7oL7bpapJCBM2nUme2oCSpSeK4uZzXQO
FjHqTOi07i91G9PQ+n1bWUgC5temTNbpBRAnio4WWTHsRYWQrU50t03y
Ay5elZs9xb2WtkFObVoTLdUFRTyvmMwVJVpM7mXWU11irWXyR4XXVvrK
9g100EaKdOWWzQigh8+5uZERbjHaXdeupoqYZeTyJMlolJr6B7vtapKgRT
qyy2aGUMp84z5znJdhD2jsdVdejQgp5pxPM5ac6Ped/3WrbFIinTllemGk5B
4CjOZUX4ju9uujfba4WFrMXi4ySRmNf0OugbqLFWmMpHmk4h4FM5pzGn
oWek6Ft9ilyEEM/Fjy/Nk6RNvvrd7WyvIXmaU8qcc+btnNdNdD0qdfTdMwA
AhYmc5fz6NelPW+qtZlmTNs0pmlPKnNPmVcy1J7Lr1dmUWFhFYJBSHx
0ed6knsvV6pKskV6IzirBUzp8z5eYnQs9pptGKXh4Eu7dbM68rNJ0OzTUS
/N9Z9L79RlKxXojMadaK2eB8Xk/tLnvqoRU56YdRvymPYbrFlh4Zcz6np3
YZSsV6YoFMtTKnivMyX+6q/lry8cmboHT6NdLnLyuZJj2mrunH4x6z1lsitI0…"
解决方法img src=" data:image/jpeg;base64,+/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAgFBgcGBQgHBgcJCAgJDBMMDA
sLDBgREg4THBgdHRsYGxofIywlHyEqIRobJjQnKi4vMTIxHiU2OjYwOiwwMTD/
2wBDAQgJCQwKDBcMDBcwIBsgMDAwMDAwMDAwMDAwMDAwMDAwMDA
wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDD…"就好了

在Java中,将数据库BLOB(Binary Large Object)格式的图片转换成适合小程序端展示的格式,通常需要经过以下几个步骤: 1. **从数据库获取BLOB数据**: 使用JDBC(Java Database Connectivity)或ORM框架如MyBatis、Hibernate等,通过SQL查询获取到存储在数据库中的BLOB类型图像数据。 ```java Blob blobImage = dBConnection.getConnection().prepareStatement("SELECT image FROM images WHERE id = ?") .setLong(1, yourImageId) .getBlob(); ``` 2. **读取并解码BLOB**: 将BLOB数据转换成字节数组,然后解析为常见的图片格式,比如JPEG或PNG。 ```java InputStream inputStream = blobImage.getBinaryStream(); byte[] imageData = IOUtils.toByteArray(inputStream); ``` 3. **Base64编码**: 图片通常是字节流形式,为了在小程序前端方便处理,可以将其转换为Base64字符串。 ```java String base64Image = Base64.encodeBase64String(imageData); ``` 4. **发送给小程序**: 将Base64编码后的字符串作为参数,通过HTTP请求或者其他通信方式(如WebSocket)发送给小程序。在小程序端,这个字符串可以直接用于设置网络请求返回的数据,再由小程序加载显示。 ```java // Java后端发送 Map<String, String> responseMap = new HashMap<>(); responseMap.put("image", base64Image); sendResponse(responseMap); // 使用HTTP响应或者WebSocket发送 // 小程序端接收 onNetRequestSuccess(data) { const base64Image = data.image; // 解码Base64并展示图片 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值