SlideShare una empresa de Scribd logo
1 de 4
Guardar y extraer imágenes en 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.
Guardar y extraer imágenes en MySQL con PHP
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
• PHP >= 3.0.16
• MySQL
• Habilitar la extension en PHP sobre GD
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;
• Id_banner (Llave, autonumérico)
• Nombre (Texto)
• Descripcion (Texto)
• Imagen (Blob)
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.

Más contenido relacionado

La actualidad más candente

Injection on Steroids: Codeless code injection and 0-day techniques
Injection on Steroids: Codeless code injection and 0-day techniquesInjection on Steroids: Codeless code injection and 0-day techniques
Injection on Steroids: Codeless code injection and 0-day techniquesenSilo
 
Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64
Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64
Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64Santa Edith De La Cruz Gonzalez
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a NodejsJan Sanchez
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
PowerShell for Cyber Warriors - Bsides Knoxville 2016
PowerShell for Cyber Warriors - Bsides Knoxville 2016PowerShell for Cyber Warriors - Bsides Knoxville 2016
PowerShell for Cyber Warriors - Bsides Knoxville 2016Russel Van Tuyl
 
Oracle Transparent Data Encryption (TDE) 12c
Oracle Transparent Data Encryption (TDE) 12cOracle Transparent Data Encryption (TDE) 12c
Oracle Transparent Data Encryption (TDE) 12cNabeel Yoosuf
 
MySQL innoDB split and merge pages
MySQL innoDB split and merge pagesMySQL innoDB split and merge pages
MySQL innoDB split and merge pagesMarco Tusa
 
Puertos comunicacion
Puertos comunicacionPuertos comunicacion
Puertos comunicacionBertha Vega
 
Directivas de grupo locales en Windows Server 2008
Directivas de grupo locales en Windows Server 2008Directivas de grupo locales en Windows Server 2008
Directivas de grupo locales en Windows Server 2008YinaGarzon
 
PE102 - a Windows executable format overview (booklet V1)
PE102 - a Windows executable format overview (booklet V1)PE102 - a Windows executable format overview (booklet V1)
PE102 - a Windows executable format overview (booklet V1)Ange Albertini
 
PostgreSQL - backup and recovery with large databases
PostgreSQL - backup and recovery with large databasesPostgreSQL - backup and recovery with large databases
PostgreSQL - backup and recovery with large databasesFederico Campoli
 
Como esconder la url detras de un texto en el correo
Como esconder la url detras de un texto en el correoComo esconder la url detras de un texto en el correo
Como esconder la url detras de un texto en el correoEsperanza Botero Idarraga
 

La actualidad más candente (20)

Injection on Steroids: Codeless code injection and 0-day techniques
Injection on Steroids: Codeless code injection and 0-day techniquesInjection on Steroids: Codeless code injection and 0-day techniques
Injection on Steroids: Codeless code injection and 0-day techniques
 
Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64
Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64
Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64
 
Buffer overflow
Buffer overflowBuffer overflow
Buffer overflow
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a Nodejs
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
PowerShell for Cyber Warriors - Bsides Knoxville 2016
PowerShell for Cyber Warriors - Bsides Knoxville 2016PowerShell for Cyber Warriors - Bsides Knoxville 2016
PowerShell for Cyber Warriors - Bsides Knoxville 2016
 
5 polimorfismo
5 polimorfismo5 polimorfismo
5 polimorfismo
 
Oracle Transparent Data Encryption (TDE) 12c
Oracle Transparent Data Encryption (TDE) 12cOracle Transparent Data Encryption (TDE) 12c
Oracle Transparent Data Encryption (TDE) 12c
 
Introducción a Javascript I
Introducción a Javascript IIntroducción a Javascript I
Introducción a Javascript I
 
DIRECTORIO ACTIVO
DIRECTORIO ACTIVODIRECTORIO ACTIVO
DIRECTORIO ACTIVO
 
MySQL innoDB split and merge pages
MySQL innoDB split and merge pagesMySQL innoDB split and merge pages
MySQL innoDB split and merge pages
 
Puertos comunicacion
Puertos comunicacionPuertos comunicacion
Puertos comunicacion
 
Directivas de grupo locales en Windows Server 2008
Directivas de grupo locales en Windows Server 2008Directivas de grupo locales en Windows Server 2008
Directivas de grupo locales en Windows Server 2008
 
¿Qué es Python?
¿Qué es Python?¿Qué es Python?
¿Qué es Python?
 
PE102 - a Windows executable format overview (booklet V1)
PE102 - a Windows executable format overview (booklet V1)PE102 - a Windows executable format overview (booklet V1)
PE102 - a Windows executable format overview (booklet V1)
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Clean code
Clean codeClean code
Clean code
 
PostgreSQL - backup and recovery with large databases
PostgreSQL - backup and recovery with large databasesPostgreSQL - backup and recovery with large databases
PostgreSQL - backup and recovery with large databases
 
Como esconder la url detras de un texto en el correo
Como esconder la url detras de un texto en el correoComo esconder la url detras de un texto en el correo
Como esconder la url detras de un texto en el correo
 
Code Injection in Windows
Code Injection in WindowsCode Injection in Windows
Code Injection in Windows
 

Similar a Guardar y extraer imágenes en my sql

Semana12ClasificadordeImagenes.pptx
Semana12ClasificadordeImagenes.pptxSemana12ClasificadordeImagenes.pptx
Semana12ClasificadordeImagenes.pptxIvan Esmit Mayhua
 
88 Php. Imagenes En Tablas
88 Php. Imagenes En Tablas88 Php. Imagenes En Tablas
88 Php. Imagenes En TablasJosé M. Padilla
 
Optimizar imágenes para web con Fireworks
Optimizar imágenes para web con FireworksOptimizar imágenes para web con Fireworks
Optimizar imágenes para web con FireworksColectivo Arista
 
Guia bootstrap
Guia bootstrapGuia bootstrap
Guia bootstrapljds
 
Recuperar imagen desde base de datos mysql IDE NETBEANS
Recuperar imagen desde base de datos mysql IDE NETBEANSRecuperar imagen desde base de datos mysql IDE NETBEANS
Recuperar imagen desde base de datos mysql IDE NETBEANSJomar Burgos Palacios
 
Crea tu plantilla de blogger
Crea tu plantilla de bloggerCrea tu plantilla de blogger
Crea tu plantilla de bloggerAntonio Gamez
 
Practica 3 sistemas
Practica 3 sistemasPractica 3 sistemas
Practica 3 sistemaspa92
 
Descargar presentaciones de slideshare
Descargar presentaciones de slideshareDescargar presentaciones de slideshare
Descargar presentaciones de slideshareCarlos Fabuel
 
Cómo limpiar un WordPress con síndrome de diógenes
Cómo limpiar un WordPress con síndrome de diógenesCómo limpiar un WordPress con síndrome de diógenes
Cómo limpiar un WordPress con síndrome de diógenesLaura Díaz
 
Html4 imagnes
Html4 imagnesHtml4 imagnes
Html4 imagnescinco81
 
Practica3 Look and Feel Java
Practica3 Look and Feel JavaPractica3 Look and Feel Java
Practica3 Look and Feel Javacobymotion
 
Cómo cambiar la cabecera en blogger
Cómo cambiar la cabecera en bloggerCómo cambiar la cabecera en blogger
Cómo cambiar la cabecera en bloggercasandrachahua
 
INFOSAN Objetos en javascript
INFOSAN Objetos en javascriptINFOSAN Objetos en javascript
INFOSAN Objetos en javascriptFRANCIACOCO
 
PHP Tema 6 - Creación de imágenes
PHP Tema 6 - Creación de imágenesPHP Tema 6 - Creación de imágenes
PHP Tema 6 - Creación de imágenesSpacetoshare
 

Similar a Guardar y extraer imágenes en my sql (20)

Semana12ClasificadordeImagenes.pptx
Semana12ClasificadordeImagenes.pptxSemana12ClasificadordeImagenes.pptx
Semana12ClasificadordeImagenes.pptx
 
88 Php. Imagenes En Tablas
88 Php. Imagenes En Tablas88 Php. Imagenes En Tablas
88 Php. Imagenes En Tablas
 
Optimizar imágenes para web con Fireworks
Optimizar imágenes para web con FireworksOptimizar imágenes para web con Fireworks
Optimizar imágenes para web con Fireworks
 
Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1Trabajando con imagenes en liferay 6.1
Trabajando con imagenes en liferay 6.1
 
Guia bootstrap
Guia bootstrapGuia bootstrap
Guia bootstrap
 
Recuperar imagen desde base de datos mysql IDE NETBEANS
Recuperar imagen desde base de datos mysql IDE NETBEANSRecuperar imagen desde base de datos mysql IDE NETBEANS
Recuperar imagen desde base de datos mysql IDE NETBEANS
 
Crea tu plantilla de blogger
Crea tu plantilla de bloggerCrea tu plantilla de blogger
Crea tu plantilla de blogger
 
Practica 3 sistemas
Practica 3 sistemasPractica 3 sistemas
Practica 3 sistemas
 
Descargar presentaciones de slideshare
Descargar presentaciones de slideshareDescargar presentaciones de slideshare
Descargar presentaciones de slideshare
 
Explicacion html
Explicacion htmlExplicacion html
Explicacion html
 
La imagen
La imagenLa imagen
La imagen
 
Ernesto dertas
Ernesto dertasErnesto dertas
Ernesto dertas
 
Cómo limpiar un WordPress con síndrome de diógenes
Cómo limpiar un WordPress con síndrome de diógenesCómo limpiar un WordPress con síndrome de diógenes
Cómo limpiar un WordPress con síndrome de diógenes
 
Html4 imagnes
Html4 imagnesHtml4 imagnes
Html4 imagnes
 
Practica3 Look and Feel Java
Practica3 Look and Feel JavaPractica3 Look and Feel Java
Practica3 Look and Feel Java
 
Cómo cambiar la cabecera en blogger
Cómo cambiar la cabecera en bloggerCómo cambiar la cabecera en blogger
Cómo cambiar la cabecera en blogger
 
Cambiando de tema
Cambiando de temaCambiando de tema
Cambiando de tema
 
INFOSAN Objetos en javascript
INFOSAN Objetos en javascriptINFOSAN Objetos en javascript
INFOSAN Objetos en javascript
 
Curso HTML 5 & jQuery - Leccion 3
Curso HTML 5 & jQuery - Leccion 3Curso HTML 5 & jQuery - Leccion 3
Curso HTML 5 & jQuery - Leccion 3
 
PHP Tema 6 - Creación de imágenes
PHP Tema 6 - Creación de imágenesPHP Tema 6 - Creación de imágenes
PHP Tema 6 - Creación de imágenes
 

Más de Oscar Hernandez

Lista de libros (en general)
Lista de libros (en general)Lista de libros (en general)
Lista de libros (en general)Oscar Hernandez
 
Instructivo de uso de multímetro profesional
Instructivo de uso de multímetro profesional Instructivo de uso de multímetro profesional
Instructivo de uso de multímetro profesional Oscar Hernandez
 
Prácticas con el multímetro
Prácticas con el multímetroPrácticas con el multímetro
Prácticas con el multímetroOscar Hernandez
 
Introduccon al Hardware y Software
Introduccon al Hardware y SoftwareIntroduccon al Hardware y Software
Introduccon al Hardware y SoftwareOscar Hernandez
 
El espacio y el tiempo se curvan
 El espacio y el tiempo se curvan El espacio y el tiempo se curvan
El espacio y el tiempo se curvanOscar Hernandez
 
Curso.de.programación.de.videojuegos.con.c.plus.plus.y.allegro3
Curso.de.programación.de.videojuegos.con.c.plus.plus.y.allegro3Curso.de.programación.de.videojuegos.con.c.plus.plus.y.allegro3
Curso.de.programación.de.videojuegos.con.c.plus.plus.y.allegro3Oscar Hernandez
 
Fundición en moldes permanentes y desechables copia
Fundición en moldes permanentes y desechables   copiaFundición en moldes permanentes y desechables   copia
Fundición en moldes permanentes y desechables copiaOscar Hernandez
 
Consideraciones para la instalacion de un centro de computo
Consideraciones para la instalacion de un centro de computoConsideraciones para la instalacion de un centro de computo
Consideraciones para la instalacion de un centro de computoOscar Hernandez
 
Necesidades para desarrollar una red
Necesidades para desarrollar una redNecesidades para desarrollar una red
Necesidades para desarrollar una redOscar Hernandez
 

Más de Oscar Hernandez (16)

Lista de libros (en general)
Lista de libros (en general)Lista de libros (en general)
Lista de libros (en general)
 
Método Newton-Raphson
Método Newton-RaphsonMétodo Newton-Raphson
Método Newton-Raphson
 
Aircrak (Ubuntu)
Aircrak (Ubuntu)Aircrak (Ubuntu)
Aircrak (Ubuntu)
 
Instructivo de uso de multímetro profesional
Instructivo de uso de multímetro profesional Instructivo de uso de multímetro profesional
Instructivo de uso de multímetro profesional
 
Prácticas con el multímetro
Prácticas con el multímetroPrácticas con el multímetro
Prácticas con el multímetro
 
Introduccon al Hardware y Software
Introduccon al Hardware y SoftwareIntroduccon al Hardware y Software
Introduccon al Hardware y Software
 
Matematicas en Google
Matematicas en GoogleMatematicas en Google
Matematicas en Google
 
Math
MathMath
Math
 
Rpv
RpvRpv
Rpv
 
Siguelineas
SiguelineasSiguelineas
Siguelineas
 
El espacio y el tiempo se curvan
 El espacio y el tiempo se curvan El espacio y el tiempo se curvan
El espacio y el tiempo se curvan
 
Curso.de.programación.de.videojuegos.con.c.plus.plus.y.allegro3
Curso.de.programación.de.videojuegos.con.c.plus.plus.y.allegro3Curso.de.programación.de.videojuegos.con.c.plus.plus.y.allegro3
Curso.de.programación.de.videojuegos.con.c.plus.plus.y.allegro3
 
Fundición en moldes permanentes y desechables copia
Fundición en moldes permanentes y desechables   copiaFundición en moldes permanentes y desechables   copia
Fundición en moldes permanentes y desechables copia
 
Consideraciones para la instalacion de un centro de computo
Consideraciones para la instalacion de un centro de computoConsideraciones para la instalacion de un centro de computo
Consideraciones para la instalacion de un centro de computo
 
Necesidades para desarrollar una red
Necesidades para desarrollar una redNecesidades para desarrollar una red
Necesidades para desarrollar una red
 
Modulo de HelpDesk
Modulo de HelpDeskModulo de HelpDesk
Modulo de HelpDesk
 

Guardar y extraer imágenes en my sql

  • 1. Guardar y extraer imágenes en 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.
  • 2. 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.
  • 3. Guardar y extraer imágenes en MySQL con PHP 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 • PHP >= 3.0.16 • MySQL • Habilitar la extension en PHP sobre GD 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; • Id_banner (Llave, autonumérico) • Nombre (Texto) • Descripcion (Texto) • Imagen (Blob) 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);
  • 4. $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.