ホームページ >データベース >mysql チュートリアル >他の出力が存在するときに MySQL BLOB イメージが正しく表示されないのはなぜですか?

他の出力が存在するときに MySQL BLOB イメージが正しく表示されないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-24 05:34:13887ブラウズ

Why Does My MySQL BLOB Image Display Incorrectly When Other Output Is Present?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。