sql >> Base de Datos >  >> RDS >> Mysql

Problema de visualización de imagen de base de datos php

Si ha guardado el contenido de la imagen en la base de datos, puede usar un data: uri muestra este contenido en un <img /> etiqueta. Esto le permite incrustar contenido de diferente tipo MIME en otro contenido, consulte esquema de URI de datos .

Pero realmente no debería guardar ningún archivo (independientemente de la imagen o no) en la base de datos. Los archivos pertenecen al sistema de archivos, como su nombre ya sugiere. Obtiene una gran sobrecarga al guardar archivos en la base de datos. Especialmente para las imágenes, necesita (tal vez) un script php que cargue la imagen, por ejemplo. si usa algo como <img src="showimage.php?id=5" alt="..." /> . Para cada imagen, debe llamar a un script php adicional y no gana nada. Todos le dirá que es mejor guardar los archivos en el sistema de archivos y cargarlos a través del sistema de archivos como de costumbre. Entonces usas etiquetas como <img src="images/foobar/xyz.png" alt="..." /> en cambio. Incluso el "No quiero 'enlaces rotos' a imágenes en mi base de datos" el argumento no cuenta ya que simplemente usa la ID dentro de la ruta y usa file_exists() para verificar si un enlace de imagen es válido o no.

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