Cara Memaparkan Imej BLOB daripada Pangkalan Data MySQL dalam PHP
Anda cuba memaparkan imej BLOB daripada pangkalan data MySQL dalam PHP tetapi menghadapi ralat . Mari terokai dua pilihan untuk menyelesaikan isu:
Pilihan 1: Pengekodan Inline Base64
echo '<dt><strong>Technician Image:</strong></dt><dd>'; echo '<img src="data:image/jpeg;base64,' . base64_encode($row2['image']) . '" width="290" height="290">'; echo '</dd>';
Kaedah ini mengekod imej BLOB ke dalam rentetan base64 dan membenamkannya secara terus ke dalam HTML. Walau bagaimanapun, pendekatan ini tidak disyorkan untuk sejumlah besar imej.
Pilihan 2: Fail PHP Output Imej
Buat fail image.php dengan kod berikut:
<?php $id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? intval($_GET['id']) : 0; $image = getImageFromDatabase($id); // Your function to fetch the image from the database header('Content-Type: image/jpeg'); echo $image; ?>
Dalam HTML anda:
<img src="image.php?id=<?php echo $image_id; ?>" />
Kaedah ini mendapatkan semula imej daripada pangkalan data dan menghantar ia terus ke penyemak imbas, memastikan jenis MIME yang betul ditetapkan (imej/jpeg). Baris pengepala:
header('Content-Type: image/jpeg');
mengarahkan penyemak imbas untuk mentafsir output sebagai imej dan memaparkannya dengan sewajarnya. Ini menghapuskan isu data JPEG binari yang anda alami.
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Imej BLOB daripada MySQL dalam PHP: Pengekodan Base64 lwn. Fail Imej Berasingan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!