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 ?

Pourquoi mon image MySQL BLOB ne s'affiche-t-elle pas correctement lorsqu'une autre sortie est présente ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-24 05:34:13887parcourir

Why Does My MySQL BLOB Image Display Incorrectly When Other Output Is Present?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn