Mysql
 sql >> Datenbank >  >> RDS >> Mysql

php datenbank bild zeigt problem

Wenn Sie den Inhalt des Bildes in der Datenbank gespeichert haben, können Sie einen data: verwenden uri zeigen diesen Inhalt in einem <img /> Schild. Dadurch können Sie Inhalte unterschiedlicher Mime-Typen in andere Inhalte einbetten, siehe Daten-URI-Schema .

Aber Sie sollten wirklich keine Dateien (egal ob Bild oder nicht) in der Datenbank speichern. Files gehört, wie der Name schon sagt, zum Dateisystem. Das Speichern von Dateien in der Datenbank verursacht einen enormen Overhead. Speziell für Bilder braucht man (evtl.) ein PHP-Skript, das das Bild lädt, zB. wenn Sie so etwas wie <img src="showimage.php?id=5" alt="..." /> verwenden . Für jedes Bild müssen Sie ein zusätzliches PHP-Skript aufrufen, und Sie gewinnen nichts. Jeder wird Ihnen sagen, dass es besser ist, die Dateien im Dateisystem zu speichern und sie wie gewohnt über das Dateisystem zu laden. Sie verwenden also Tags wie <img src="images/foobar/xyz.png" alt="..." /> stattdessen. Sogar die "Ich möchte keine 'defekten Links' zu Bildern in meiner Datenbank" Das Argument zählt nicht, da Sie einfach die ID innerhalb des Pfads verwenden und file_exists() verwenden um zu prüfen, ob ein Bildlink vorhanden ist gültig ist oder nicht.

$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" />';
}