mysql - 如何将类型 blob 图像显示到 ejs 网页?

标签 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 中做到这一点?另外,我发现的大多数方法看起来都很长,所以我试图尽可能高效。请帮忙!

最佳答案

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

试试这个:

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

希望这有帮助!

关于mysql - 如何将类型 blob 图像显示到 ejs 网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51692042/

相关文章:

c# - 当 ID 字段 (PK) 自动递增时(带有 EF 的 MySQL),使用与之前相同的 Id 恢复已删除的记录

java - Mysql插入与选择不同

mysql - 为什么/如何能够超过 MySQL 中 varchar 的配置长度? 【我的错,我不能】

javascript - Grunt Watch fatal error : listen EACCES and livereload

node.js - 使用 mongoose 获取子文档的 Node api

javascript - 使用 *客户端* 上的 React 验证电子邮件帐户是否处于事件状态

javascript - 如何将 blob 文件从 Javascript 传递到 ASP.net 中的服务器代码

php - 插入的数据没有显示在 phpMyAdmin 的表中

sqlite - 从 Linux bash 解析 FB-Purity 的 Firefox idb(索引数据库 API)object_data blob

java - 如何使用java在应用程序引擎中使用文件名将文件存储为blob?