Mysql
 sql >> Base de données >  >> RDS >> Mysql

afficher une image stockée dans un blob mysql

Eh bien ... la réponse à la raison pour laquelle il fera ce que vous avez décrit est due à votre utilisation de la fonction header() . En PHP, vous ne pouvez rien imprimer avant un appel d'en-tête car cela demande au serveur Web de préparer un en-tête de contenu. Habituellement, ceux-ci remplacent complètement tout le contenu.

Deuxièmement, je voudrais mentionner que stocker des images dans une base de données est généralement une mauvaise idée pour deux raisons.

  1. Cela a un impact significatif sur les performances et le rendu.
  2. Vous devez écrire du code pour rendre les données blob plutôt que d'afficher simplement l'image elle-même.

La méthode préférée pour la présentation d'images basée sur la base de données serait que les images soient stockées dans un répertoire et leurs noms de fichiers stockés dans la base de données. Désormais, lorsque vous souhaitez afficher les images, il vous suffit d'interroger la base de données pour connaître les noms de fichiers que vous souhaitez afficher, puis d'inclure simplement le nom de fichier dans un attribut HTML.

L'exécution est également beaucoup plus rapide.

De plus, je voudrais souligner que si vous souhaitez qu'un script effectue réellement votre rendu, vous voudriez que ce script définisse votre en-tête, puis renvoie ou imprime le blob d'image après avoir défini l'en-tête.

Veuillez noter que lorsque vous créez votre balise html... dans l'attribut src, vous en ferez alors quelque chose de plus semblable ;

<img src="image.php?id=<some_number>">

Maintenant, votre fichier image.php va cracher les données de l'image dans la balise.