Re: Insertar Foto en tabla y como visualizarla

From: Francisco Olarte <folarte(at)peoplecall(dot)com>
To: José Fermín Francisco Ferreras <josefermin54(at)hotmail(dot)com>
Cc: Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Insertar Foto en tabla y como visualizarla
Date: 2016-04-17 09:18:49
Message-ID: CA+bJJbxR3v9tszTVwMLRXJF_RFtkSUat6Ana88ZA7Bw5=z6x4w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenos dias:

2016-04-17 6:48 GMT+02:00 José Fermín Francisco Ferreras
<josefermin54(at)hotmail(dot)com>:
> Como puedo insertar una foto en una tabla en postgres mediante comando:
> CREATE TABLE esquema.documento
> (
> numero_documento serial NOT NULL,
> fecha_documento date NOT NULL,
> nombre_cliente integer NOT NULL,
> foto_documento bytea NOT NULL,
> );
> Me pregunto si se insertara de esta manera:
> insert into esquema.documento(fecha_documento, nombre_cliente,foto) values
> ('2016-04-17','Juan Perez','c:\foto.jpg');

Desde luego, asi no. Tienes que leer en el cliente la foto de alguna
manera y ponersela en alguna sintaxis que se entienda, hay varias en
el manual. El como depende sobre todo de que aplicacion estes usando
para manejarla (p.e., si estas usando psql tienes pocas alternativas
aparte de ponerla como una constante ).

P.e. Un jpg cualquiera:

$ od -t x1 -tc redacted_filename.JPG | head
0000000 ff d8 ff e0 00 10 4a 46 49 46 00 01 01 01 02 58
377 330 377 340 \0 020 J F I F \0 001 001 001 002 X

puede describirse como una constante bytea
E'\\Xffd8ffe000104a464946000101010258...'

Dependiendo de tu entorno hay muchas formas de construirla, p.e.

$ head -c16 Documents/Boda\ y\ abuelos.JPG | perl -e "\$q=qq('); "'
undef $/; print "E$q\\\\x",unpack("H*",scalar(<>)),"$q\n"'
E'\\xffd8ffe000104a464946000101010258'

( Parece mas de lo que es por lo dificil que es meter un script de
perl que use ' y " y \ en la linea de comando del bash, probablemente
en un archivo te quede solo:

#!/usr/bin/perl
undef $/; # Slurp whole stdin in one go.
print "E'\\\\x",unpack("H*",scalar(<>)),"'\n"'

> Y como se puede visualizar el registro con su imagen??

Pues como al reves, consigues el byte a y lo pasas a binario y se lo
das a la rutina / programa.

> Alguien me puede ayudar??

Seguro, pero deberias empezar por decir mucho mas de lo que pones,
como que lenguage/sistema operativo/entorno estas usando ( parece
windows por el C:\, con lo que yo no mucho, pero hay mucho experto de
windows suelto por aqui ) ( porque p.e. lo que te dije fallara casi
seguro en windows por el tema del binmode aunque tuvieras perl y head
).

Un saludo.
Francisco Olarte.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message José Fermín Francisco Ferreras 2016-04-17 11:28:12 RE: Insertar Foto en tabla y como visualizarla
Previous Message José Fermín Francisco Ferreras 2016-04-17 04:48:29 Insertar Foto en tabla y como visualizarla