Guardar imágenes en una Base de Datos

Guardar imágenes en una Base de Datos

Postby maecmx » Wed Jan 24, 2007 11:48 pm

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.
maecmx
 
Posts: 19
Joined: Fri Nov 11, 2005 8:12 pm
Location: Guadalajara, Jalisco Mexico

Postby Rochinha » Thu Jan 25, 2007 12:25 am

Miras esto:

Code: Select all  Expand view
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
...
Rochinha
 
Posts: 310
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 71 guests