Investigación
Como guardar datos de imágenes en DB
Un
clásico problema de una aplicación web es el almacenamiento de archivos subidos
por los usuarios (Sus fotos, por ejemplo).
Si bien teóricamente se puede realizar sin mayores inconvenientes (Al fin y al cabo, un archivo digital no es más que una colección de datos binarios), es sumamente ineficiente hacerlo.
Primero
que nada, habría que manejar de alguna forma el upload de archivos, pero,
asumiendo que el archivo ya está disponible para php se podría pensar en
almacenarlo dentro de la base de datos utilizando algún campo tipo BLOB.
Un
problema inmediato que surge de tomar esta opción es que la base de datos
crecerá mucho si el sistema es muy utilizado, lo cual impactará negativamente
en su rendimiento, hará más costosos los backups, etc…
Una
alternativa simple es guardar, en lugar del contenido del archivo, su
localización (Puede ser la ruta al archivo, si está guardado en algún medio de
almacenamiento, ya sea el disco local o alguno externo, como S3 por ejemplo).
De esa forma se logra aislar a la base de datos del manejo de información que, por otro lado, tampoco será sencilla de consultar y, a la vez, permite aprovechar capacidades del medio de almacenamiento elegido (Incluso hace mucho más simple la introducción de alguna capa de caché como ser un CDN).
Cómo obtener las imágenes de la DB
Si lo
que se desea realizar son búsquedas dentro del contenido de archivos de texto,
lo mejor que se podría hacer es usar alguna otra herramienta como Solr,
ElasticSearch o Sphinx (solo son algunos ejemplos). Para mostrar la foto en la que esta guardado el contenido del archivo y no su ruta se utiliza algo tan simple como:
En cambio, si lo que está guardado en la base de datos es el contenido del archivo… no es
que sea imposible, pero seguro que es algo más complicado (Tal vez
sea necesario realizar un script que devuelva los datos binarios de la foto o algo
así) por lo tanto, ¿para qué hacer las cosas más difíciles de lo que debe ser?
Cómo cargar imágenes en una aplicación web
Si tienes acceso al código HTML, lo tienes fácil. Solo hay que insertar el siguiente fragmento de código en el lugar adecuado donde quieres que aparezca la imagen:
Img
src: es la ubicación de la imagen, la dirección donde se encuentra. JPG, JPEG y
PNG son los formatos más habituales. Preferiblemente usa imágenes en jpg, que
ocupan menos.
alt:
el texto alternativo de la imagen. Lo que pongamos en esta etiqueta es lo que
verá alguien a quien no se le cargue la imagen (por ejemplo, si el alt es
“Paisaje de playa”, si alguien no puede visualizar la imagen al menos
sabrá lo que debería ver).
Height
y width: son respectivamente el alto y el ancho de la imagen (en píxeles)
Comentarios