如何在ejs网页上显示Blob型图像?

时间:2018-08-05 06:47:19

标签: mysql node.js blob ejs

我使用长Blob创建了一个数据库,并将图像存储在其中。然后,我想将图像显示到我的ejs网页之一。但是,它显示为奇怪的字母。我知道我应该将其转换为可以正常使用的方式,只是我不知道该怎么做。

这是我运行node-js服务器时显示的内容: enter image description here

这是我在ejs中使用的代码:

               <% for (var i = 0; i < products.length; i++) { console.log(products[i]); %>
                <div class="row">
                    <div class="cell" data-title="Brand">
                    <td><%= products[i].brand %></td>
                    </div>
                    <div class="cell" data-title="Model">
                    <td><%= products[i].model %></td>
                    </div>
                    <div class="cell" data-title="Series">
                    <td><%= products[i].series %></td>
                    </div>
                    <div class="cell" data-title="Preview">
                    <td><img src="data:image/jpeg;base64,<%- products[i].image01 %>" /></td>
                    </div>
                </div>
                <% } %>

有许多文章显示了如何使用javascript做到这一点,但是有没有办法在ejs中做到这一点?另外,我发现的大多数方法看起来都很长,因此我正在尝试尽可能地高效。请帮忙!

1 个答案:

答案 0 :(得分:0)

据我了解,您需要将二进制数据转换为base64格式,然后将其传递给ejs。您可以使用Buffer在NodeJS中进行此操作。

尝试一下:

products[i] = new Buffer(products[i]).toString('base64');

希望这会有所帮助!