Affichage des images BLOB de la base de données MySQL
Dans votre quête pour afficher les images BLOB de votre base de données MySQL, vous avez rencontré un problème où votre La page PHP affiche l'image sous forme de données binaires au lieu d'une image réelle. Examinons la solution pour résoudre ce problème.
L'erreur que vous voyez provient de l'absence d'une déclaration d'en-tête "Content-Type" appropriée. Cet en-tête informe le navigateur du type de données attendu de la réponse. Dans votre cas, vous devez spécifier que la réponse est une image de type "image/jpeg".
Encodage Base64 en ligne (recommandé pour les images limitées)
Pour un petit nombre d'images, vous pouvez utiliser l'encodage base64 en ligne. Voici comment l'implémenter :
echo '<dt><strong>Technician Image:</strong></dt><dd>' . '<img src="data:image/jpeg;base64,' . base64_encode($row2['image']) . '" width="290" height="290">' . '</dd>';
Création d'un fichier image PHP (recommandé pour de nombreuses images)
Si vous avez un grand nombre d'images à afficher, une meilleure approche consiste à créer un fichier PHP distinct qui gère la récupération et la sortie des images. Vos fichiers HTML et PHP ressembleraient à ceci :
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; ?>
En spécifiant correctement l'en-tête "Content-Type", vous demanderez au navigateur de restituer les données sous forme d'image, résolvant ainsi votre affichage problème.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!