我想将画布图像存储到 blob 字段中。
在服务器端,我收到一个 base64 编码的字符串toDataUrl()
我该怎么做才能将它放入 blob 字段?
以及如何在 img 标签中再次显示它?
我需要使用什么代码?mysql页面不是很清楚,我用 的是PDOprepared statements。
如果您确实需要将其存储在 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
到数据库中。
当您需要再次在网页中显示时,您可以:
src
图像标记,或者toDataUrl()
作为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()?>" />