我有来自数据库(mysql)的表和显示数据。我用百里香。所有字段都可以,但sb.cover不显示jpg(我的数据库中的blob列)。您是否有任何想法如何使用百里香叶将jpg放入网页?感谢
<tr th:each="sb, poz : ${product}">
<td th:text="${poz.count}">1</td>
<td th:icon="${sb.cover}"></td>
<td th:text="${sb.title}"></td>
<td th:text="${sb.price}"></td>
<td ><b><a th:href="@{/details}">DETAILS</a></b></td>
<td ><b><a th:href="@{/cart}">ADD TO CART</a></b></td>
</tr>
答案 0 :(得分:5)
这对我有用:
<img class="info" th:attr="src=@{${image}}" />
其中'image'是base64 image:
image =“data:image / png; base64,R0lGODlhlgCWAMQAAPz .........
Spring Java Controller中的:
@RequestMapping(value = "/get_goods_detail", method = RequestMethod.GET)
public String getGoodsDetail(@RequestParam(value = "itemid") final int itemid,
ModelMap model) {
// get image
String image = "data:image/png;base64,R0lGODlhlgCWAMQAAPz8/N3d3eX.../big image
model.addAttribute("image", image);
return "goods_detail"; // return name of html view with thymeleaf
}
答案 1 :(得分:2)
我不确定这对你有帮助......
<tr th:each="sb, poz : ${product}">
<td th:text="${poz.count}">1</td>
<td><img th:attr="src=@{${sb.cover}} , title=#{background}, alt=#{background}" style="width: 150px; height: 150px;" /></td>
<td th:text="${sb.title}"></td>
<td th:text="${sb.price}"></td>
<td ><b><a th:href="@{/details}">DETAILS</a></b></td>
<td ><b><a th:href="@{/cart}">ADD TO CART</a></b></td>
</tr>
答案 2 :(得分:1)
你可以这样做: -
<img th:src="@{'data:image/jpeg;base64,'+${sb.encodedString}}" />
其中 encodedString 是图像的byte []数据转换为base64编码的字符串。
这实际上是基本的html。请检查此问题:Is it possible to put binary image data into html markup and then get the image displayed as usual in any browser?
希望有所帮助
答案 3 :(得分:1)
或者,您可以显示如下图像:
<img th:if="*{photo != null}" th:src="@{'data:image/jpg;base64,' + *{T(org.springframework.util.Base64Utils).encodeToString(photo)}}"/>
答案 4 :(得分:-1)
此方法将字节数组转换为base64字符串,因此您可以将产品封面转换为base64 sring。 您需要添加产品类:
public String generateBase64Image()
{
return Base64.encodeBase64String(this.getCover());
}
在网页中,您需要在网页中调用方法generateBase64Image():
<img th:src="@{'data:image/jpeg;base64,'+${product.generateBase64Image()}}" />