Maison >base de données >tutoriel mysql >Pourquoi mon image MySQL BLOB ne s'affiche-t-elle pas correctement lorsqu'une autre sortie est présente ?
Gestion de l'affichage des images et de la sortie supplémentaire d'une colonne BLOB MySQL
Dans l'exemple de code fourni ci-dessous, une image stockée en tant que variable BLOB dans une base de données MySQL est affichée. Cependant, il arrive que si un texte supplémentaire est affiché avant ou après l'image, cela entraîne un affichage erroné.
<?php include("inc/library.php"); connectToDatabase(); $sql = "SELECT * FROM theBlogs WHERE ID = 1;"; $result = mysql_query($sql) or die(mysql_error()); $row = mysql_fetch_array($result); header("Content-type: image/jpeg"); echo $row['imageContent']; $db->close(); ?>
Pour résoudre ce problème, nous devons comprendre que les données de l'image sont traitées comme un flux binaire. La sortie de texte avant ou après l'image perturbe les données binaires et provoque des problèmes d'affichage.
La solution consiste à convertir les données de l'image au format base64 et à les intégrer dans une balise d'image HTML. Cette approche nous permet de séparer les données d'image des autres sorties.
echo '<img src="data:image/jpeg;base64,' . base64_encode( $row['imageContent'] ) . '" />'; echo 'Hello world.';
Bien que cette méthode fonctionne, elle n'est pas optimale pour les performances et la mise en cache. Pour une gestion plus efficace des données d'image, envisagez d'utiliser un service d'hébergement d'images approprié ou des mécanismes de mise en cache de base de données.
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!