Re: How to send bytea data straight to browser (as in pg_loreadall)? - Mailing list pgsql-php

From Joe Conway
Subject Re: How to send bytea data straight to browser (as in pg_loreadall)?
Date
Msg-id 3CA8CF7D.9060303@joeconway.com
Whole thread Raw
In response to How to send bytea data straight to browser (as in pg_loreadall)?  (Frank Joerdens <frank@joerdens.de>)
List pgsql-php
Frank Joerdens wrote:
> I've played with fgets, fwrite, fputs, fpassthrough, trying to make a
> file pointer on stdout with fopen . . . it appears that I don't
> understand some crucial point about how this works. How do you present
> an image to the browser without actually creating a file for it? The
> built in function pg_loreadall appears to do exactly that. I'd need to
> replicate that functionality for bytea.
>
> Regards, Frank

I've always approached this a bit differently, but in any case, did you
try to use "php://stdout"? If not see:
http://www.php.net/manual/en/function.fopen.php


I usually create one php file to generate the image output, and a second
one which calls the first. E.g. (untested)

---------------------- begin showimgage.php ----------------------
<?PHP

$conn = pg_pconnect("host=192.168.100.70 dbname=bytea_test");
$query = "SELECT img FROM bytea_t where id=" . $_GET["imgid"];
$result = pg_exec($conn, $query);

$image = stripcslashes(pg_result($result, 0, 0));
// send the image
header("content-type: image/gif");
echo $image;

?>
---------------------- showimgage.php ----------------------

The second file would then have a line like:

echo "<img src='showimage.php?imgid=1' border=0>";


Hope this helps,

Joe




pgsql-php by date:

Previous
From: Frank Joerdens
Date:
Subject: How to send bytea data straight to browser (as in pg_loreadall)?
Next
From: Jean-Christophe FABRE
Date:
Subject: bytea or large object