Cómo guardar archivos en MySQL desde php

Guardar archivos dentro de una base de datos debe ser una decisión muy bien analizada si es conveniente porque según el tamaño de las mismas pueden inflar enormemente la base de datos pudiendo hacerla un poco más lenta al momento de hacer peticiones a dicha tabla, porsupuesto debemos tomar en cuenta cuantos registros irás a tener.

Solo decir un ejemplo imaginemos que tenemos una tabla con 1000 registros de solo texto a un promedio de 0.2 kb por registro esto es igual a 200 kb en total. Por otro lado si registramos archivos, digamos imágenes, un promedio de 64 kb cada una por 1000 registros estamos hablando de 62.5 mb, es decir que ha crecido 320 veces con respecto a la primera.

En lo personal prefiero guardar la imagen en el servidor web y la ruta a la imagen en la base de datos, pero si el cliente te dice que así lo quiere por más que lo querras disuadir pues ni modo, es por eso que te dejo este código para realizar dicha tarea.

Este código trabaja de manera general para todo tipo de archivos como por ejemplo imagenes o arhivos pdf.

El tipo de datos donde vamos a guardar el archivo es longblob.

Este es el código que podemos usar para guardar el archivo en MySQL:

Al cargar este archivo seleccionamos el archivo que vamos a insertar en la base y hacemos clic en el botón guardar.

También nos va a interesar el código para recuperar el archivo de la base, con el siguiente solo necesitamos pasar el id del archivo que queremos ver:

Para enviar el id al código lo debemos agregar en la url como este ejemplo:

http://localhost/tutoriales-kiuvox/php/017%20mysql_blob/ver.php?id=1

Si quieren aceptar solo algun tipo de restricción de qué archivos aceptar solo seria necesario que agreguen las condiciones necesarias en funcion de tipo de archivo a recibir.

Etiquetas:
4 comentarios

Deja un comentario