Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-04-2004
Avatar de barman
barman barman is offline
Miembro
 
Registrado: may 2003
Posts: 139
Poder: 22
barman Va por buen camino
ibase_blob_get

Guenas, llevo pegandome varios dias con esto y no soy capaz de sacarlo, de echo no he visto que nadie lo use, pero hay, estoy intentando visualizar un campo blod en intervase, el campo contiene una grafica, le pongo por donde he tirado:

$result = ibase_query("SELECT GRAFICA FROM ...........");
$data = ibase_fetch_object($result);


$blob_data = ibase_blob_info($data->BLOB_VALUE);
$blob_hndl = ibase_blob_open($data->BLOB_VALUE);
echo ibase_blob_get($blob_hndl, $blob_data[0]);


$blob_id = ibase_blob_open($row->V_BLOB);

while($data = ibase_blob_get($blob_id , 8192)){
gravo en fichero.

etc,etc,etc, la verdad he probado todas las combinaciones posible y no sale.
Responder Con Cita
  #2  
Antiguo 09-04-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Hola,

te pego un trozo de código que a mí me funcionó hace tiempo. Yo usaba una biblioteca (ADOdb) por encima del API InterBase de PHP, pero como ésta no tenía soporte para BLOBs, tuve que echar mano directamente al API ...

Primero una función que me devuelve (en bruto) el contenido del BLOB:

Código PHP:
  function ObtenerBlob($pBlobId)
  {
    
$BlobId ibase_blob_open($pBlobId);
    
$BlobReal ibase_blob_get($BlobId99999); // tamaño máximo -> 99999
    
ibase_blob_close($BlobId);

    return 
$BlobReal;
  } 
Uso:

Código PHP:
  // supongo que ya tienes el cursor abierto 
  // ...
  
$vIdBlob $vRecordSet->fields[4]; // Fields("EnlaceDescripcion"));
  // $vIdBlob contiene el identificador del BLOB

  
$vEnlaceDescripcion "";
  if (IsSet(
$vIdBlob)) {
    
$vEnlaceDescripcion ObtenerBlob($vIdBlob);
  }
  
// ...
  // en $vEnlaceDescripcion tendrás el contenido del BLOB 
Saludos
Responder Con Cita
  #3  
Antiguo 14-04-2004
Avatar de barman
barman barman is offline
Miembro
 
Registrado: may 2003
Posts: 139
Poder: 22
barman Va por buen camino
Gracias por tu repuesta, pero no termina de funcionar, si son campos de texto, vale, pero si son graficos me llena la pantalla de caracteres, lo que quiere decir que algo ha echo, voy a intentar salvarlo a un fichero y recuperarlo con un enlaze a una pagina, y te comento.

1000 g.
Responder Con Cita
  #4  
Antiguo 14-04-2004
Avatar de barman
barman barman is offline
Miembro
 
Registrado: may 2003
Posts: 139
Poder: 22
barman Va por buen camino
GUAY.

if (IsSet($vIdBlob)) {
$vEnlaceDescripcion = ObtenerBlob($vIdBlob);
// echo $vEnlaceDescripcion ;
// ibase_blob_echo($vEnlaceDescripcion );

$TEMPFILE .= "c:\pr1.bmp";
$FILEID = fopen($TEMPFILE,"w");
fputs($FILEID ,$vEnlaceDescripcion);
fclose($FILEID);
}

}



?>
<CENTER><IMG SRC="c:\pr1.bmp"></CENTER>";

1000 G (agains).
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 09:13:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi