【问题标题】:How to display a JSON file object?如何显示 JSON 文件对象?
【发布时间】:2021-01-18 12:46:46
【问题描述】:

使用 express-fileupload 我有一个文件的 JSON 对象,我存储在我的数据库中。

例如:

{
  name: 'bear.jpg',
  data: <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ff fe 00 3b 43 52 45 41 54 4f 52 3a 20 67 64 2d 6a 70 65 67 20 76 31 2e 30 20 28 75 73 69 ... 15948 more 
bytes>,
  size: 15998,
  encoding: '7bit',
  tempFilePath: '',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '7505ae720e82ac3b807b3e39483bebab',
  mv: [Function: mv]
}

我目前正在使用 EJS。

如何在 html 中显示这个文件?

我希望是这样的:

<html>
  <body>
    <img src="<%= the-file %>" width="200" height="200">
  </body>
</html>

这不是Convert buffer data to an image 的副本,因为它查询通用文件和标签的技术(另一个示例可能是带有&lt;model-viewer&gt; 标签的.glb 文件),图像仅用作示例。

【问题讨论】:

  • 我不认为那是 JSON。 JSON 不能包含缓冲区 (AFAIK)。
  • 这能回答你的问题吗? Convert buffer data to an image
  • 也许检查一下示例项目,看看你应该用那个“JSON”做什么? github.com/richardgirges/express-fileupload/tree/master/…
  • 您将图像存储在 数据库中?为什么?为什么不只是文件系统(硬盘)上的图像文件?
  • @evolutionxbox 不完全是,我的问题有点笼统,对于通用标签的通用文件类型,另一种情况是&lt;model-viewer src="..."&gt; 标签的 3d 文件。

标签: javascript html express ejs


【解决方案1】:

&lt;your-tag src="data:&lt;%= file.mimetype %&gt;;base64,&lt;%= file.data.buffer.toString('base64') %&gt;"&gt;

应该适用于任何文件类型。

由于your-tag 可能对应于特定的file.mimetype,您可以简单地对该类型进行硬编码,例如:

&lt;img src="data:image/jpeg;base64,&lt;%= file.data.buffer.toString('base64') %&gt;"&gt;

有用的链接:

不知道为什么以前不能简单地回答。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2016-06-09
    • 2015-10-27
    • 1970-01-01
    相关资源
    最近更新 更多