Programación en castellano
Inicio > Taller PHP > MySQL > Guardar y extraer imágenes en MySQL
-Artículos

Guardar y extraer imágenes en MySQL

1 . Introducción
    1.1 . Requerimientos
    1.2 . Creación de Base de datos y Tabla
    1.3 . Conectarnos a la BD
2 . Almacenar imagen en la BD
3 . Extraer la imagen de la BD y mostrarla en el navegador

En este artículo vamos a tratar lo que es el almacenar imágenes en una Base de Datos, para lo que utilizaremos MySQL.

Introducción

¿Quien se podría imaginar el guardar imágenes en una Base de Datos? Al principio ni me pasaba por la cabeza, hasta que ya vas conociedo las herramientas y con el tiempo surgen nuevas ideas y surge la inquietud. ¿Se podrán guardar imágenes en una Base de Datos? La respuesta es que sí.

Requerimientos

  • PHP >= 3.0.16
  • MySQL
  • Habilitar la extension en PHP sobre GD

Creación de 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;

  • Id_banner (Llave, autonumérico)
  • Nombre (Texto)
  • Descripcion (Texto)
  • Imagen (Blob)

Conectarnos a la BD

Ahora simplemente nos conectamos a MySQL y seleccionamos 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 imagen 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
Inicia 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 imagen tipo GIF, por eso se utilizan las funciones imagecreateformgif e imagegif. Si se desea almacenar una imágen tipo JPEG, hay que utilizar las funciones imagecreatefromjpeg e imagejpeg. Asi solamente se cambia el tipo de imagen en las funciones. Para ver los tipos de imágenes que soporta PHP+GD pulsa aquí.

Ahora sí que vamos a almacenarla; para esto convertimos la información de la imagen en sql-safe y simplemente hacemos una consulta para guardarla.

$jpg = str_replace('##','\#\#',mysql_escape_string($jpg));
$result = mysql_query("INSERT INTO tbl_Banner SET Imagen='$jpg'");

Extraer la imagen de la BD y mostrarla en el navegador

Ahora vamos a extraer la imagen 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 una imagen GIF. Si se va a mostrar imágenes JPEG hay que cambiar image/gif por image/jpeg y asi para los diferentes formatos.

 

Últimos comentarios
Últimos 5 comentarios

Guardar desde un Combo (19/06/2009)

Por
Cuando quiero guardar un valor desde un combo en mi base de datos, solo me guarda la primer palabra, despues del espacio no guarda nada.
Ejemplo en el combo tengo
alambre calibre 16.
y cuando genero la cosulta y guardo los datos en mi tabla
solo me aparece alambre la primer palabra.
Alguna idea???

hola (18/06/2009)

Por
kiero saber el codigo para guardar comentarios en una base de datos y que se guarde y lo muestre

ke mierda (10/06/2009)

Por
Exijo un poco de respeto, busco el código en java y éste sitio es dedicado al java, cómo ponen esa mierda de ejemplo con php?!!!

validacion de campos (03/06/2009)

Por
alguien me puede ayudar a como validar los campos en php para que cada campo solo me acepte los datos que le correspondan. si me pudieran ayudar se los agradeceria.

TUTORIAL PHP-MYSQL (21/05/2009)

Por
HOLA, ALGUIEN PUEDE DARME UN BUEN TUTORIAL PARA HACER UNA PAGINA WEB EN PHP CON MYSQL? ME INTERESA TAMBIEN LO DE LA INSERCION, MODIFICACION, ELIMINACION Y ACTUALIZACION DE IMAGENES EN LA BASE DE DATOS DESDE LA PAGINA COMO POR EJEMPLO UNA CUENTA DE ADMINISTRADOR, LA PAGINA QUE VOY A REALIZAR LA VOY A ALOJAR EN UN HOSTING. GRACIAS
 
Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: juegos gratis | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | decoración web | gifs animados