From: | Horacio Miranda <hmiranda(at)gmail(dot)com> |
---|---|
To: | Alfredo Zea García Calderón <alfredoaal(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Ayuda con campo BYTE y pg_unescape_bytea |
Date: | 2010-05-16 14:05:35 |
Message-ID: | AANLkTinpsUZcH_9mOcbeCexq1-MI1nUMcDXNfJnECaNH@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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 <alfredoaal(at)gmail(dot)com>:
> 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
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2010-05-17 04:20:30 | Re: Error en pg_dump |
Previous Message | Horacio Miranda | 2010-05-16 13:43:44 | Re: Optimizacion de select(pregunta de novato) |