PHP で MySQL データベースの BLOB イメージを表示するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-22 06:27:13
オリジナル
394 人が閲覧しました

How to Display BLOB Images from a MySQL Database in PHP?

MySQL データベースからの BLOB イメージの表示

MySQL データベースから BLOB イメージを表示しようとしているときに、 PHP ページでは、実際の画像ではなくバイナリ データとして画像が表示されます。この問題を解決するための解決策を詳しく見てみましょう。

表示されているエラーは、適切な "Content-Type" ヘッダー宣言が欠如していることが原因で発生します。このヘッダーは、予想される応答のデータ型をブラウザーに通知します。あなたの場合、応答が「image/jpeg」タイプの画像であることを指定する必要があります。

インライン Base64 エンコーディング (限定された画像に推奨)

の場合画像の数が少ない場合は、インライン Base64 エンコードを利用できます。これを実装する方法は次のとおりです。

echo '<dt><strong>Technician Image:</strong></dt><dd>'
     . '<img src="data:image/jpeg;base64,' . base64_encode($row2['image']) . '" width="290" height="290">'
     . '</dd>';
ログイン後にコピー

画像 PHP ファイルの作成 (多数の画像に推奨)

表示する画像が多数ある場合は、より良いアプローチは、画像の取得と出力を処理する別の PHP ファイルを作成することです。 HTML および PHP ファイルは次のようになります。

HTML:

<img src="image.php?id=<?php echo $image_id; ?>" />
ログイン後にコピー

PHP:

<?php
$id = (isset($_GET['id']) &amp;&amp; is_numeric($_GET['id'])) ? intval($_GET['id']) : 0;
$image = getImageFromDatabase($id); // your code to fetch the image

header('Content-Type: image/jpeg');
echo $image;
?>
ログイン後にコピー

「Content-Type」ヘッダーを正しく指定すると、データを画像としてレンダリングするようにブラウザーに指示し、問題を解決します。ディスプレイの問題です。

以上がPHP で MySQL データベースの BLOB イメージを表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート