【问题标题】:base64 Image MongoDB will not Display on Img Tagbase64 图像 MongoDB 不会显示在 Img 标签上
【发布时间】:2023-03-23 14:00:04
【问题描述】:

谁能告诉我我做错了什么?

我在我的 MongoDB 上保存了一个基于 64 的图像,这是捕获数字签名并将其存储在 MongoDB 上的一部分。

所以存储的数据看起来像这样。

data: '"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABBoAAAEsCAYAAABtx9BIA...

当我在图像标签上显示原始数据时,它可以完美运行,

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABBoAAAEsCAYAAABtx9BIA..."/>

但是当我尝试通过 ejs 显示它时它不起作用,例如:

<img src=<%= data %>/>

谁能告诉我我做错了什么!提前非常感谢!!!

【问题讨论】:

  • 您可能应该展示它在 ejs 中的呈现方式。从有限的细节中我可以立即看到data 肯定只是从 MongoDB 返回的文档中的“键”的名称。您实际上不太可能仅在模板中使用此键的值来引用另一个变量,并且您可能只是指向“文档”而不是特定值。即,如果你正在做类似res.render('page', { data: doc }) 的事情,那么你的模板应该使用&lt;% data.data %&gt;。没有看到你通过什么,真的无法分辨。
  • 是的,数据是我的 mongoDB 集合中的关键。集合是员工,当我呈现页面时它会正确返回所有信息....所以我实际上正在使用&lt;% employe.data %&gt; ....当我在 div 中运行数据时它运行良好....我看得很清楚..."data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABBoAAAEsCAYAAABtx9BIA...。但不是当我在 img 标签内运行它时。

标签: node.js mongodb express ejs


【解决方案1】:

我不得不从它显示的 mongodb 数据中删除引号

<img src="<%= employee.data.replace(/"/g,"") %>">

【讨论】:

    【解决方案2】:

    如果你的数据是这样的

    src='"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABBoAAAEsCAYAAABtx9BIA..."'
    

    它不会工作。可能当您选择数据时,它带有撇号 ' ' 尝试删除它。可能这就是ejs在src标签上输出数据的方式

    【讨论】:

      【解决方案3】:

      用逗号分割字符串,data:image/png;base64,实际上并不是base64的一部分

      【讨论】:

        猜你喜欢
        • 2011-05-18
        • 2021-11-30
        • 2014-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        相关资源
        最近更新 更多