如何从db网页显示jpg?

时间:2013-07-21 13:33:37

标签: thymeleaf

我有来自数据库(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>

5 个答案:

答案 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()}}"  />