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.
Guardar imágenes en una Base de Datos
Miras esto:
Uso:
cImagem := IMG2MEMO( "foto.jpg" )
...
replace CAMPOMEMO with cImagem
...
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 )
cImagem := IMG2MEMO( "foto.jpg" )
...
replace CAMPOMEMO with cImagem
...