0

キャンバス画像をblobフィールドに保存したいと思います。

サーバー側では、base64でエンコードされた文字列をtoDataUrl()

  • ブロブフィールドに入れるにはどうすればよいですか?

  • そして、それをimgタグで再度表示するにはどうすればよいですか?

どのコードを使用する必要がありますか?mysqlページはあまり明確ではなく、PDOプリペアドステートメントを使用しています 。

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ます。

Web ページに再度表示する必要がある場合は、次のことができます。

  1. GET パラメータに従って BLOB コンテンツを取得する PHP スクリプトを記述し、それをsrcイメージ タグの として使用する、または
  2. から取得した元のデータ URI をイメージ タグのtoDataUrl()として直接使用します。src

方法 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()?>" />
于 2012-09-30T18:10:25.093 に答える