Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/04/2005, 08:29
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No sé como vía ODBC desde PHP (www.php.net/odbc) trabaja los campos "binarios" .. Pero en principio la base es la siguiente:

1) generar las cabeceras HTTP para indicar a tu "cliente" (navegador) que el dato que vas a enviar es de tal tipo. Por ejemplo:

header("content-type: image/jpeg");

Esto es parte de las cabeceras HTTP y formatos MIME . .cosa que no define directamente PHP .. PHP sólo te presta ayuda para "enviar" esas cabeceras HTTP .. pero no las define .. eso es parte del protocolo HTTP (por si deseas buscar información sobre que formato MIME corresponde realmente al tipo de archivo "binario" que gestionas . .sea una imagen u otra cosa).

2) Arrojar al buffer de salida tus datos en sí .. tu imagen binaria que estará en tal campo de tu BD .. Para eso tendrás que hacer tu consulta SQL a tu BD como corresponda .. cuando lo tengas .. haces un "echo" como si de otro campo cualquiera se tratase. El "echo" en PHP envia "salida" al "buffer" de por sí .. el "cómo" lo entienda el cliente que lo reciba es parte del uso de las anteriores cabeceras HTTP para que sepa e interprete correctamente lo que se le envia.

"Parece" que para obtener un dato de un campo binario debes usar:

obdc_binmode()
http://www.php.net/manual/en/function.odbc-binmode.php

3) .. Todo este script debe funcionar de forma aislada .. Sólo llamará a una imagen por vez .. Por ejemplo si tienes que presentar las imagenes de N registros .. se llama por HTML con su tag de imagen tipo:

<img src="ver_imagen.php">

Si tienes más imagenes y las basas en una consulta SQL a tu BD .. puedes usar alguna variable de referencia para ejecutar tu consulta SQL condicinal tipo:

$sql="SELECT * FROM tabla_imagen WHERE id_imagen='".$_GET['id_imagen']."'";

Y la llamada desde otros scripts será por HTML tipo:

<img src="ver_imagen.php?id_imagen=1">
<img src="ver_imagen.php?id_imagen=2">
<img src="ver_imagen.php?id_imagen=N">

Aquí como veras .. te puedes imaginar que si tienes un bucle que recorre tu "record-set" y quieres mostrar campos normales de texto .. etc . . + el de tu imagen .. tendrás que tener UN_script.php que haga eso, y ver_imagen.php?id_imagen por separado donde generes ese "id" del registro pero ... la llamada es aparte .. Una página HTML es de tipo "texto plano" .. los datos binarios como imagenes se "lanzan" a este por los tag's de HTML: <img ...>

Un saludo,