MySQL に BLOB として保存されたイメージの表示
データベースに BLOB として保存されたイメージを取得しようとすると、それらを正しく表示することが困難になります。コードはデータを取得し、ヘッダーを image/jpeg に設定して画像をエコーするスクリプトに渡します。ただし、ブラウザでは画像アイコンは表示されますが、画像自体は表示されません。
この問題を解決するには、変更されたアプローチを採用することをお勧めします。
データベースに画像を挿入する
// Retrieve image data from a temporary file $image = file_get_contents($_FILES['images']['tmp_name']); // Prepare an SQL statement and bind the image parameter $query = "INSERT INTO products (image) VALUES(?)"; $stmt = $db->prepare($query); $stmt->bind_param('s', $image); // Execute the statement $stmt->execute();
から画像を取得して表示します。 Database
// Prepare an SQL statement and bind the ID parameter $sql = "SELECT * FROM products WHERE id = ?"; $stmt = $db->prepare($sql); $stmt->bind_param('s', $id); // Execute the statement and retrieve the result $stmt->execute(); $result = $stmt->get_result(); $row = $result->fetch_array(); // Encode the image data as base64 and embed it in an HTML element echo '<img src="data:image/jpeg;base64,' . base64_encode($row['image']) . '" />';
この改訂されたアプローチにより、MySQL に BLOB として保存されたイメージを効果的に表示できるようになります。画像パラメータをバインドし、HTML 要素内で Base64 としてエンコードすると、画像データを正しく取得して表示できます。
以上がMySQL BLOB イメージが正しく表示されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。