ホームページ >データベース >mysql チュートリアル >他の出力が存在するときに MySQL BLOB イメージが正しく表示されないのはなぜですか?
MySQL BLOB 列からの画像表示と追加出力の処理
以下のコード サンプルでは、画像は BLOB 変数として保存されています。 MySQL データベースが表示されています。ただし、画像の前後に追加のテキストが出力されると、誤った表示が発生することがあります。
<?php include("inc/library.php"); connectToDatabase(); $sql = "SELECT * FROM theBlogs WHERE ID = 1;"; $result = mysql_query($sql) or die(mysql_error()); $row = mysql_fetch_array($result); header("Content-type: image/jpeg"); echo $row['imageContent']; $db->close(); ?>
この問題に対処するには、画像データが次のように扱われていることを理解する必要があります。バイナリストリーム。画像の前後にテキストを出力すると、バイナリ データが破損し、表示上の問題が発生します。
解決策は、画像データを Base64 形式に変換し、HTML 画像タグ内に埋め込むことです。このアプローチにより、画像データを他の出力から分離できます。
echo '<img src="data:image/jpeg;base64,' . base64_encode( $row['imageContent'] ) . '" />'; echo 'Hello world.';
この方法は機能しますが、パフォーマンスとキャッシュの面では最適ではありません。画像データをより効率的に処理するには、適切な画像ホスティング サービスまたはデータベース キャッシュ メカニズムの使用を検討してください。
以上が他の出力が存在するときに MySQL BLOB イメージが正しく表示されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。