Guardar imágenes en una Base de Datos

Post Reply
maecmx
Posts: 19
Joined: Fri Nov 11, 2005 8:12 pm
Location: Guadalajara, Jalisco Mexico
Contact:

Guardar imágenes en una Base de Datos

Post by maecmx »

Antonio:

Se podrian almacenar imágen en la BD esto lo encontre en MYSQL y PHP no se si por medio de FWH y Xharbour se podria hacer este porceso de dejar una imagen en un formato binario para despues guardarlo en una base de datos.


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.
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

Miras esto:

Code: Select all

function IMG2MEMO( arquivo )
   bak_pont=0
   destino := L2Hex(GetTickCount())+".TMP"
   arqcria := fcreate(destino)
   arqler  := fopen( origem )
   fimarq := fseek( arqler, 0, 2 )
   for ponteiro = 0 to fimarq step 5000
        bak := space( 5000 )
        if ponteiro + 5000 > fimarq
           bak := space( fimarq - ponteiro )
        endif
        fseek( arqler, ponteiro )
        fread( arqler, @bak, len( bak ) )
        bak_pont += len( bak )
        fwrite( arqcria, bak )
   next
   fclose( arqler )
   fclose(arqcria)
   return memoread( destino )
Uso:

cImagem := IMG2MEMO( "foto.jpg" )
...
replace CAMPOMEMO with cImagem
...
Post Reply