Posteado por:
RSS con posts de cornelius
Ver perfil de cornelius cornelius
New Full User
New Full UserHombre Argentina
T! Rank: 157

251 Posts
2006 Comentarios
2256 Puntos

Bloringa! Mi bloringa!


    Guardar y extraer imágenes en MySQL    
Registrate y eliminá la publicidad!

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.

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.

Este tutorial esta completamente sacado de



Opciones
Post Relacionados
Información del post
1 0 Puntos 1 4 Favoritos 1 376 visitas
Creado el: 11.07.2008 a las 16:14:51 hs.
Categoría: E-books y Tutoriales
Tags: imagenes en base de datos, guardar imagenes en mysql, extraer imagenes en mysql, guardar y extraer imagenes mysql
Agregar a: del.icio.us Digg Facebook

Comentarios
RSS con los comentarios de este post
#1 - gast0n | 11.07.2008 16:24:44 dijo:
no es muy recomendado guardar las imagenes en la base de datos, lo idea (para mi) es guardar el nombre de la foto en un campo de la base de datos y subir la imagen a una carpeta del servidor.
#2 - cornelius | 11.07.2008 18:03:53 dijo:
gracias por el comentario que aporta!!!

Ir al cielo

Anuncie en T! - Protocolo - Contacto - Laboratorio - Enlazanos - Mapa del sitio - Historial de posts - Prensa - Denuncias - Trabaja en T!
Términos y condiciones - Privacidad de datos