canvas toDataUrl()如何将base64结果输入和输出sql blob字段

时间:2012-09-30 17:59:00

标签: php mysql pdo blob html5-canvas

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

在服务器端,我收到来自toDataUrl()

的base64编码字符串
  • 我需要做些什么才能将它变成blob字段?

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

我需要使用哪些代码? mysql page不是很清楚,我使用PDO编写的语句。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

  1. 编写一个PHP脚本,根据GET参数检索blob内容,并将其用作图像标记的src,或者
  2. 直接使用从toDataUrl()获取的原始数据URI作为图片代码的src
  3. 如果使用方法2,则实际上并不需要将数据URI解码为blob,而是直接存储数据URI。 (当然您可能会担心数据大小......)


    方法1示例:

    您的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()?>" />