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

problème d'affichage d'image de base de données php

Si vous avez enregistré le contenu de l'image dans la base de données, vous pouvez utiliser un data: uri affiche ce contenu dans un <img /> étiquette. Cela vous permet d'intégrer du contenu de type mime différent dans un autre contenu, voir schéma d'URI de données .

Mais vous ne devriez pas vraiment enregistrer de fichiers (indépendamment de l'image ou non) dans la base de données. Les fichiers appartiennent au système de fichiers, comme son nom l'indique déjà. Vous obtenez une surcharge énorme en sauvegardant des fichiers dans la base de données. Spécialement pour les images, vous avez besoin (peut-être) d'un script php qui charge l'image, par exemple. si vous utilisez quelque chose comme <img src="showimage.php?id=5" alt="..." /> . Pour chaque image, vous devez appeler un script php supplémentaire, et vous ne gagnez rien. Tout le monde vous dira qu'il vaut mieux enregistrer les fichiers dans le système de fichiers et les charger via le système de fichiers comme d'habitude. Donc, vous utilisez des balises comme <img src="images/foobar/xyz.png" alt="..." /> Au lieu. Même le "Je ne veux pas de 'liens brisés' vers des images dans ma base de données" l'argument ne compte pas car vous utilisez simplement l'ID à l'intérieur du chemin et utilisez file_exists() pour vérifier si un lien d'image est valide ou non.

$path = 'images/useravatars/'.$row['ID'].'.png'; // as an example
if (file_exist($path)) {
     echo '<img src="'.$path.'" alt="username" />';
} else {
     echo '<img src="images/noimage.png" alt="No Image found" />';
}