0

我想将画布图像存储到 blob 字段中。

在服务器端,我收到一个 base64 编码的字符串toDataUrl()

  • 我该怎么做才能将它放入 blob 字段?

  • 以及如何在 img 标签中再次显示它?

我需要使用什么代码?mysql页面不是很清楚,我用 的是PDOprepared statements。

4

1 回答 1

1

如果您确实需要将其存储在 blob 数据中,您可以这样做:

对于 PHP >=5.2.0,您可以使用data://流包装器从数据 uri 中检索文件:

$file_in_blob = file_get_contents("data://".$var_containing_the_data_uri);

where$var_containing_the_data_uri应替换为包含数据 URI 的变量,例如$_POST['image']. 然后您可以将其插入$file_in_blob到数据库中。

当您需要再次在网页中显示时,您可以:

  1. 编写一个 PHP 脚本,根据 GET 参数检索 blob 内容,并将其用作src图像标记,或者
  2. 直接使用从获取的原始数据URItoDataUrl()作为src图片标签。

如果使用方法 2,实际上不需要将数据 URI 解码为 blob,而是直接存储数据 URI。(当然您可能会担心数据大小......)


方法一示例:

您的 HTML:

<img src="img_from_db.php?img=1" />

你的img_from_db.php

<?php
header('Content-Type: image/png'); // make the browser recognize it as PNG
echo get_image_blob_from_db($_GET['img']); // you may wish to add some checks

方法2示例:

<img src="<?=get_image_dataURI()?>" />
于 2012-09-30T18:10:25.093 回答