【问题标题】:How to display a blob with JavaScript如何使用 JavaScript 显示 blob
【发布时间】:2015-06-27 10:51:51
【问题描述】:

我有一个脚本,它从我的 MySQL 数据库中获取多个图像,这些图像存储为 blob。该脚本是通过 JavaScript / Ajax 请求访问的。

所以现在我在 div 中显示 blob。但是如何在 JavaScript 中将 blob 转换为图像?

【问题讨论】:

  • 您必须从服务器提供它,而不是使用 ajax 发送,或者如果您只需要使用 ajax 发送,请先使用base64_encode,以便在收到时它是有效的 Base64。

标签: javascript php ajax blob


【解决方案1】:

首先,您可以将图像数据公开为服务器端的资源,然后在客户端实例化一个图像节点,并使用src 设置适当的 URL。

<img src="mydomain/images/my-resource.png" />

资源mydomain/images/my-resource.png不需要是服务器上的静态资源;该 URL 只需要在 HTTP 响应中返回图像数据。

其次,如果您已经在客户端有 base64 中的 blob,请使用 data-url。格式(from Wikipedia):

data:[<MIME-type>][;charset=<encoding>][;base64],<data>

示例(from Wikpedia):

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />

如果您在客户端确实有原始二进制数据,那么在构造上述data-url 时可能会使用btoa function

最后,您还可以使用 HTML5 文件 API,执行 XMLHttpRequest,将 responseType 配置为 'blob''arraybuffer'。然后,您可以为该对象实例化an in-memory URL,并将其分配给Image DOM 节点的src

【讨论】:

    猜你喜欢
    • 2011-11-30
    • 1970-01-01
    • 2016-09-13
    • 2012-06-20
    • 1970-01-01
    • 2022-10-20
    • 2012-12-28
    • 1970-01-01
    • 2018-08-25
    相关资源
    最近更新 更多