Memaparkan Imej BLOB daripada Pangkalan Data MySQL
Dalam usaha anda untuk memaparkan imej BLOB daripada pangkalan data MySQL anda, anda telah menghadapi isu di mana anda Halaman PHP menunjukkan imej sebagai data binari dan bukannya imej sebenar. Mari kita mendalami penyelesaian untuk menyelesaikan perkara ini.
Ralat yang anda lihat berpunca daripada kekurangan pengisytiharan pengepala "Jenis Kandungan" yang betul. Pengepala ini memberitahu penyemak imbas tentang jenis data yang dijangkakan bagi respons. Dalam kes anda, anda perlu menyatakan bahawa respons ialah imej jenis "imej/jpeg."
Pengekodan Inline Base64 (Disyorkan untuk Imej Terhad)
Untuk sebilangan kecil imej, anda boleh menggunakan pengekodan base64 sebaris. Begini cara anda boleh melaksanakannya:
echo '<dt><strong>Technician Image:</strong></dt><dd>' . '<img src="data:image/jpeg;base64,' . base64_encode($row2['image']) . '" width="290" height="290">' . '</dd>';
Membuat Fail PHP Imej (Disyorkan untuk Banyak Imej)
Jika anda mempunyai sejumlah besar imej untuk dipaparkan, pendekatan yang lebih baik ialah mencipta fail PHP berasingan yang mengendalikan pengambilan dan output imej. Fail HTML dan PHP anda akan kelihatan seperti ini:
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; ?>
Dengan menyatakan pengepala "Jenis Kandungan" dengan betul, anda akan mengarahkan penyemak imbas untuk menjadikan data sebagai imej, menyelesaikan paparan anda isu.
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Imej BLOB dari Pangkalan Data MySQL dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!