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)







REFERENCIAS

Leeway Academy, Mchojrin (2020). Recuperado el 1 de septiembre de 2022 de: Cómo guardar una imagen en una base de datos - Leeway Academy (leewayweb.com)

Yooseo, Penguin William (marzo 2017). Recuperado el 1 de septiembre de 2022 de: Cómo insertar imágenes en HTML en una página web - yoSEO (yoseomarketing.com)


Comentarios