En este artículo vamos a tratar lo que es el almacenar imágenes en una Base de Datos, para este artículo vamos a utilizar MySQL.
Introducción
Quien se podría imaginar el guardar imágenes en una Base de Datos?, al principio a mi ni me pasaba por la cabeza, hasta que ya vas conociedo las herramientas y con el tiempo surgen nuevas ideas y fum!! buala!! seurge la inquietud, so podrán guardar imágenes enuna Base de Datos?,la respuesta es si.
Requerimientos
Crear Base de datos y Tabla
Vamos a comenzar creando una Base de Datos, en nuestro caso se llama bd_banners y dentro de esta creamos una tabla (en nuestro caso se llama tbl_Banner) con los campos;
Conectarnos a la BD
Ahora simplemente nos conectamos a MySQL y seleccioanmso nuestra Base de Datos bd_banners.
$link = mysql_connect('localhost', 'root', 'password');
if (!$link)
die('Error al conectarse con MySQL: ' . mysql_error().' <br>Número del error: '.mysql_errno());
if (! @mysql_select_db("db_AdMX",$link)){
echo "No se pudo conectar correctamente con la Base de datos";
exit();
}
Almacenar imágen en la BD
Antes de almacenar la imágen en la BD, debemos de procesarla para llegar a convertirla en datos binarios.
$image = imagecreatefromgif('imagen.gif');
ob_start();
imagegif($image);
$jpg = ob_get_contents();
ob_end_clean();
imagecreatefromgif: Crear una nueva imagen a partir de un archivo o URL.
ob_start: Inica el almacenamiento en el búfer de salida.
imagegif: Producir la salida de una imagen al navegador o a un archivo.
ob_get_contents: Devolver el contenido del búfer de salida.
ob_end_clean: Limpia el búfer de salida y termina el almacenamiento en el búfer de salida.
NOTA: En este ejemplo se guarda una imágen tipo GIF, por eso se utilizan las funciones; imagecreateformgif, imagegif. Si se desea almacenar una imágen tipo JPEG, utilizar las funciones; imagecreatefromjpeg, imagejpeg. Asi solamente se cambia el tipo de imágen enlas funciones. Para ver los tipos de imágenes que soporta PHP+GD da click aquí.
Ahora si vamos a almacenarla, para esto convertimos la infromación de la imágen en sql-safe y simplemente hacemos un query para guardar.
$jpg = str_replace('##','##',mysql_escape_string($jpg));
$result = mysql_query("INSERT INTO tbl_Banner SET Imagen='$jpg'");
Extraer la imágen de la BD y mostrarla en el navegador
Ahora vamos a extraer la imágen mediante un simple SELECT y la vamos a mostrar en el navegador.
$result = mysql_query("SELECT Imagen FROM tbl_Banner WHERE Id_imagen=11");
$result_array = mysql_fetch_array($result);
header("Content-Type: image/gif");
echo $result_array[0];
Simplemente con esto guardamos la imágen en una variable y antes de mostrarla le decimos al navegador que el contenido a mostrar es de imágen/gif. Se se va a mostrar imágenes JPEG cambiar image/gif por image/jpeg y asi para los diferentes formatos.
Usuarios que han visto este tema también han visto...
- Instalar foros phpBB
- Medir el tiempo de ejecución de tus script
- Web Service: WSDL y UDDI
- Redimensionar imágenes con PHP
- Cómo hacer thumbnails de tus fotografías con PHP
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.