que tal, puedes cambiar esto por favor y ver como te va.

$consulta = "SELECT * FROM  preguntas WHERE ".$t."cCodPre".$t."='$cod'";

Por

Los campos y donde sea bytea pone esto

coalesce(archivo_bytea,'-1') as archivo_bytea

y revisa este link, tengo un sitio de pruebas andando con bytea y oid
y funciona bien, hay un ejemplo bueno aca.
http://www.buayacorp.com/archivos/guardar-y-recuperar-un-archivo-en-un-campo-blob-de-postgresql-con-php/

Espero te sirva.

2010/5/14 Alfredo Zea García Calderón <[email protected]>:
> Hola, necesito ayuda porfavor. Estoy tratando de descargar un archivo subido
> a un campo BYTEA, mi problema es que al momento de descargarlo se muestran
> solo caracteres y en el caso de ser una imagen me sale un error que dice
> archivo corrupto.
>
> Este es el codigo con el que inserto el archivo en la BD:
>
> $conexion_bd = pg_connect("host=localhost dbname=ISO17799 user=postgres
> password=postgres")
>    or die('No pudo conectarse: ' . pg_last_error());
>
>
> $file = "C:\Users\Alfredo\Desktop\imagen.jpg";
>
> $data = file_get_contents($file);
>
> $escaped = pg_escape_bytea($data);
>
> $t='"';
> $cod = "0";
>
> $consulta = "UPDATE preguntas SET ".$t."bArchiv".$t."=E'$escaped'::bytea
> WHERE ".$t."cCodPre".$t."='$cod'";
>
> $resultado = pg_query($consulta) or die('Consulta fallida: ' .
> pg_last_error());
>
>
>
>
> Y este es el codigo con el que descargo el archivo:
>
>
> header('Content-type: image/jpg');
>
> $conexion_bd = pg_connect("host=localhost dbname=ISO17799 user=postgres
> password=postgres")
>    or die('No pudo conectarse: ' . pg_last_error());
>
> $cod = "0";
> $t = '"';
> $consulta = "SELECT * FROM  preguntas WHERE ".$t."cCodPre".$t."='$cod'";
> $resultado =  pg_query($consulta) or die('Consulta fallida: ' .
> pg_last_error());
>
> $row = pg_fetch_array($resultado);
>
> pg_free_result($resultado);
>
> header("Cache-control: private");
>
> //$row[4] es la columna de la tabla que tiene el campo BYTEA
> $file=pg_unescape_bytea($row[4]);
>
>
> header("Content-Disposition: attachment; filename=imagen.jpg");
>
> print $file;
>
>
>
> Porfavor espero puedan ayudarme, no se como arreglar esto. Gracias.
>
> Saludos.



-- 
Saludos,
Horacio Miranda Aguilera.
RedHat Certified Engineer
DBA Oracle - Large databases
+56 2  8974500
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a