Leer imágenes desde la base de datos con php

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: Raw Message | Whole Thread | 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

Responses

Browse pgsql-es-ayuda by date

  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