Lorsqu'ils tentent d'afficher une image stockée en tant que BLOB dans une base de données MySQL, les développeurs rencontrent souvent un problème où un texte faisait écho auparavant ou après que l'en-tête de l'image entraîne un affichage incorrect de l'image.
Le problème survient car le navigateur Web interprète tout texte renvoyé en dehors du flux de données d'image comme faisant partie de l'image. Cela est dû au fait que les données d'en-tête et d'image doivent être fournies en continu et sans interruption.
Pour afficher d'autres éléments et l'image ensemble sans interruption, vous pouvez convertir les données d'image en base64 et intégrez-le dans un étiqueter. Cette approche vous permet d'inclure du texte et d'autres éléments dans la sortie HTML tout en affichant l'image.
Voici une version révisée du code :
<code class="php">echo '<img src="data:image/jpeg;base64,' . base64_encode( $row['imageContent'] ) . '" />'; echo 'Hello world.';</code>
Remarque : Bien que cette solution vous permette d'afficher à la fois l'image et d'autres textes, elle n'est pas idéale car elle ne peut pas être mise en cache et peut être lente sur les appareils mobiles. Pensez à consulter la documentation de Caniuse pour plus d'informations sur les URI 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!