Re: Getting image from a DB

From: Andy Shellam <andy-lists(at)networkmail(dot)eu>
To: Félix Sánchez Rodríguez <fesanch(at)ciego(dot)cult(dot)cu>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: Getting image from a DB
Date: 2009-05-08 06:26:15
Message-ID: 4A03D087.6010801@networkmail.eu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hi Felix,

I've not written an image specifically, but I have read/written byte
data which is all an image is.

Your PostgreSQL database column that holds the image should be of type
"bytea." Your PHP application must then use the following functions:

Writing to the database - http://uk2.php.net/pg_escape_bytea
Reading from the database -
http://uk2.php.net/manual/en/function.pg-unescape-bytea.php

Once you have unescaped the bytea data, you should then have your valid
set of bytes (your image) which you can either write to a temporary file
or stream directly to the user's browser from your application.

Regards,
Andy

Félix Sánchez Rodríguez wrote:
> Hi:
>
> Has anybody here had to capture an image from a PostgreSQL Data Base
> using PHP?? I used a simple query: select photo from people where id =
> 3, for instance. The problem is that when I write the image to disk
> it's not a valid image. I opened it using an HEX editor and saw that
> the question is that for each "strange" character, like ÿ, it writes,
> for instance, \377, it is, the "\" symbol plus the character's numeric
> code. I guessed that there were some function for this situation but I
> couldn't find it. If you can't help me, I'll have to parse the whole
> image contents, with the subsequent performance impact.
>
> PD: The image field is of type bytea,as you recommend me.

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Jan Muhammad 2009-05-08 09:11:21 How to check whether PostgreSQL server is up and running?
Previous Message Lennin Caro 2009-05-07 23:25:39 Re: How to run PostgreSQL?