Thread: How do I display an image?

How do I display an image?

From
"Patrick Hatcher"
Date:
Fairly new to PHP.  How do I display an image I have stored in my db?  I
found code on phpbuilder.com, but I must be doing something wrong. If I
just print out the field, it prints the machine code immediately.  But I
alas my users want an image instead of machine language.

CREATE TABLE mdc_imageref (
  keyp_imageref int4,
  modid int8,
  img bytea,
  keyf_image int4
)


$id = $_GET["id"];
if($id) {
     $db = db_connect();
     $result = pg_query($db,"Select ir.img,p.keyp_products
                    from mdc_products p join mdc_product_images pi on
p.keyp_products = pi.keyf_product
                    join mdc_attributes a on a.keyp_attribute =
pi.keyf_attribute
                    join mdc_images i on i.keyp_images = pi.keyf_image
                    join mdc_imageref ir on ir.keyf_image = i.keyp_images
                    where p.keyp_products = $id and keyp_attribute = 7");
         $row =  pg_fetch_array($result);
         $type = "JPG";
         Header( "Content-type:$type");
         echo $row[0];
}


TIA
Patrick Hatcher
Macys.Com
Legacy Integration Developer




Re: How do I display an image?

From
"Cornelia Boenigk"
Date:
Hi Patrick

Before storing the binary data in the BYTEA-Field use

pg_escape_bytea($imagedata)

After retrieving the imagedata from the table you must remove the slashes
the above function added. Use stripCslashes().

$image = stripcslashes($imagedata);

This works for me;-)
pg_escape_bytea() is available since php 4.2.0.

regards
Conni



Re: How do I display an image?

From
"Patrick Hatcher"
Date:
that did it!  Thank you very much

Patrick Hatcher
Macys.Com
Legacy Integration Developer






 
                    "Cornelia Boenigk"
 
                    <poppcorn@cornelia-b       To:     "PGSQL+PHP" <pgsql-php@postgresql.org>, "Patrick Hatcher"
 
                    oenigk.de>                  <PHatcher@macys.com>
 
                                               cc:
 
                    10/23/2002 05:36 PM        Subject:     Re: [PHP] How do I display an image?
 
                    Please respond to
 
                    "Cornelia Boenigk"
 

 

 




Hi Patrick

Before storing the binary data in the BYTEA-Field use

pg_escape_bytea($imagedata)

After retrieving the imagedata from the table you must remove the slashes
the above function added. Use stripCslashes().

$image = stripcslashes($imagedata);

This works for me;-)
pg_escape_bytea() is available since php 4.2.0.

regards
Conni







Re: How do I display an image?

From
knut.suebert@web.de
Date:
Patrick Hatcher schrieb:

>          $row =  pg_fetch_array($result);
>          $type = "JPG";
>          Header( "Content-type:$type");
>          echo $row[0];

For most browsers that's enough, at least some versions of
InternetExplorer need more information:

   $data = $db->bytea_decode($db->f("data"));
   header(sprintf("Content-type: %s", $db->f("type")));
   header(sprintf("Content-Disposition: attachment; filename=%s",
                  $db->f("name")));
   header(sprintf("Content-length: %s", strlen($data)));
   print($data);