キャンバス画像をblobフィールドに保存したいと思います。
サーバー側では、base64でエンコードされた文字列をtoDataUrl()
ブロブフィールドに入れるにはどうすればよいですか?
そして、それをimgタグで再度表示するにはどうすればよいですか?
どのコードを使用する必要がありますか?mysqlページはあまり明確ではなく、PDOプリペアドステートメントを使用しています 。
本当に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 ページに再度表示する必要がある場合は、次のことができます。
src
イメージ タグの として使用する、または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()?>" />