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