Re: Sacar archivo de db. Pregunta de PHP.

From: "Silvio Quadri" <silvioq(at)gmail(dot)com>
To: "Pablo Braulio" <brulics(at)gmail(dot)com>
Cc: postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Sacar archivo de db. Pregunta de PHP.
Date: 2008-05-05 12:36:30
Message-ID: 61dc71dc0805050536w51f6660arb63611911a9bc97c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El día 5 de mayo de 2008 9:09, Pablo Braulio <brulics(at)gmail(dot)com> escribió:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hola a todos.
>
> Ante todo, disculpar que haga una pregunta sobre un tema que no todo
> tiene que ver con postgres.
>
> Hago esta pregunta, pues estoy seguro que en este foro habrá gente que
> trabaja con php+postgres y seguramente podrán ayudarme.
>
> La cuestión es, que pretendo recuperar un archivo insertado en la bd.
>
> Según he revisado en la documentación lo puedo hacer con campos de tipo
> bytea o con tipo oid.
>
> Con el tipo oid, puedo hacer el insert del tipo:
>
> \lo_import 'directorio/achivo'
>
> insert into tabla(campos...) values(...,:LASTOID)
>
> y para sacarlo:
>
> \lo_export 'directorio/archivo'
>
> Realmente este modo no muestra el archivo, sino que lo guarda en un
> directorio.
>
> El caso es con el tipo bytea.
>
> El insert lo tengo claro:
>
> $nombre= $_FILES["archivo"]["name"];
> copy($_FILES["archivo"]["tmp_name"],"temp/".$nombre);
> $contenido= file_get_contents("temp/".$nombre);
> $archivo= pg_escape_bytea($contenido);
>
> $ins= "insert into ...." ....
>
> Leo el contenido del archivo, lo escapo a bytea y luego lo inserto del
> modo normal.
>
> Pero para sacarlo es el problema.
>
> He probado con esto:
>
> $sel= "select documento, nombdoc from comunicacionesclientes where id=19";
> $qSel= pg_query($sel);
> $rSel= pg_fetch_array($qSel);
>
> header('Content-type: application/force-download');
> header('Content-type: application/octet-stream');
> header('Content-type: application/download');
> header('Content-Disposition: attachment; filename='.$rSel["nombdoc"].'');
>
> echo pg_unescape_bytea($rSel["documento"]);
>
> Pero sólo me muestra la url del archivo.
>
> Espero que alguien me pueda ayudar.
>
> Gracias a todos, y perdón por el off-topic.
> - --
>
>
> < ¡¡Nos vemos!! >
> ----------------------------
> \
> \
> .::!!!!!!!:.
> .!!!!!:. .:!!!!!!!!!!!!
> ~~~~!!!!!!. .:!!!!!!!!!UWWW$$$
> :$$NWX!!: .:!!!!!!XUWW$$$$$$$$$P
> $$$$$##WX!: .<!!!!UW$$$$" $$$$$$$$#
> $$$$$ $$$UX :!!UW$$$$$$$$$ 4$$$$$*
> ^$$$B $$$$\ $$$$$$$$$$$$ d$$R"
> "*$bd$$$$ '*$$$$$$$$$$$o+#"
> """" """""""
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFIHvjfK7lGsMchFswRAnORAJ9ArAyfhxqISE6ws27zXxtfC/yNkQCgsMG4
> qfeNICbNehxTwhznHXjF21M=
> =3pRb
> -----END PGP SIGNATURE-----
> --
> TIP 4: No hagas 'kill -9' a postmaster
>

Sólo deberías usar header('Content-type: application/octet-stream');
pero no sé si esa es la raíz del problema.
No te olvides de usar "Content-Lenght"
Silvio

--
Silvio Quadri

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Antonio Salas Mena 2008-05-05 13:31:58 Re: [pgsql-es-ayuda] Aumentar el desempeño del servidor
Previous Message Pablo Braulio 2008-05-05 12:09:03 Sacar archivo de db. Pregunta de PHP.