| From: | Nahum Castro <nahumcastro(at)gmail(dot)com> | 
|---|---|
| To: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> | 
| Subject: | Leer imágenes desde la base de datos con php | 
| Date: | 2016-10-20 01:46:12 | 
| Message-ID: | CABqArLgooQ3X-=GzRAzL2=wec72CM=r9YR0TvSvKRES6m9zqfw@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
Hola a tod(at)s
Tengo un problema al leer imágenes desde la base de datos en php.
OS: Centos 7
Postgresql: 9.6
PHP: 5.4.16
Antes usaba oid y esas cosas en postgresql 7 @ del año 2003, pero ahora
tengo la necesidad de guardar imágenes en la base de datos en postgresql
9.6.
Esta es mi tabla.
                Tabla «public.personal»
    Columna    |          Tipo          | Modificadores
---------------+------------------------+---------------
 id            | integer                | not null
 nombre        | character varying(255) |
 horario       | character varying(200) |
 puesto        | character varying(255) |
 ingreso       | date                   |
 departamento  | character varying(255) |
 clasificacion | character varying(255) |
 tarjeta       | character varying(50)  |
 foto          | bytea                  |
Índices:
    "pk_orbis" PRIMARY KEY, btree (id)
    "tarjeta_unica" UNIQUE CONSTRAINT, btree (tarjeta)
Referenciada por:
    TABLE "acceso" CONSTRAINT "fk_tarjeta_personal" FOREIGN KEY (tarjeta)
REFERENCES personal(tarjeta) ON UPDATE CASCADE ON DELETE RESTRICT
Las imágenes las guardo en un bytea
y las puedo obtener como sigue
\copy (select encode(foto, 'hex') from personal where id = 193) to
'/home/nahum/Escritorio/imagen.hex';
y luego
xxd -p -r imagen.hex > imagen.jpg
desde bash
La imágen se ve bien.
Pero el siguiente código no funciona.
<?php
  // Conectar a la base de datos
  $dbconn = pg_connect("host=localhost port=5432 dbname=personal user=nahum
password=xxxx");
  // Obtener los datos
$res = pg_query("SELECT foto FROM personal WHERE id=193;");
$row = pg_fetch_row($res);
 // Convertir a binario?
$image = pg_unescape_bytea($row[0]);
header("Content-type: image/jpeg");
echo $image;
pg_close($dbconn);
?>
El problema es que no obtengo ninguna imágen, solo: "No se puede mostrar la
imágen por que contiene errores"
¿Se puede emular xdd -p -r en postgres o en php?
Saludos y gracias.
Nahum.
-- 
*Nahum Castro González*
Blvd. Perdigón 214, Brisas del Lago.
CP 37207
León, Guanajuato, México
Tel (477)1950304
Cel (477)1274694
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Nahum Castro | 2016-10-20 05:52:40 | Re: [pgsql-es-ayuda] Leer imágenes desde la base de datos con php | 
| Previous Message | Germán C. Basisty | 2016-10-19 00:00:22 | Re: Configuracion |