Обсуждение: Load Image from File to Store in ByteA Field
How to Load Image from File to Store in ByteA Field?
Hi
> How to Load Image from File to Store in ByteA Field?
This is the way I store images with PHP. The column bild has the
datatype bytea.
function esc_bytea($imagedata) {
$finde = array(chr(92), chr(0), chr(39));
$ersetze = array('\\\134', '\\\000', '\\\047');
$esc = str_replace($finde[0], $ersetze[0], $imagedata);
$esc = str_replace($finde[1], $ersetze[1], $esc);
$esc = str_replace($finde[2], $ersetze[2], $esc);
return $esc;
}
$fp = fopen($imagefile,"r");
$contents = fread($fp, filesize($imagefile));
fclose($fp);
$esc_daten = esc_bytea($contents);
$sql = "INSERT INTO byteatest (bild, name, size, typ, htmlstr) ";
$sql .= "values ('$esc_daten', '$name', $size, '$typ',
'$htmlstr');";
$res = @pg_exec($sql) or die ("Fehler bei der
Datenbankabfrage.");
Regards
Conni
Any modern version of PHP which has pg_ specific functions can do it
like this:
$string = pg_escape_bytea(file_get_contents($filename));
pg_query("INSERT INTO TABLE pictures (picture_bytea) VALUES
('$string');");
I prefer to use pg_escape() rather than code my own escape.
Paul
>Hi
>
>
>
>>How to Load Image from File to Store in ByteA Field?
>>
>>
>This is the way I store images with PHP. The column bild has the
>datatype bytea.
>
>function esc_bytea($imagedata) {
> $finde = array(chr(92), chr(0), chr(39));
> $ersetze = array('\\\134', '\\\000', '\\\047');
> $esc = str_replace($finde[0], $ersetze[0], $imagedata);
> $esc = str_replace($finde[1], $ersetze[1], $esc);
> $esc = str_replace($finde[2], $ersetze[2], $esc);
> return $esc;
>}
>
> $fp = fopen($imagefile,"r");
> $contents = fread($fp, filesize($imagefile));
> fclose($fp);
> $esc_daten = esc_bytea($contents);
>
> $sql = "INSERT INTO byteatest (bild, name, size, typ, htmlstr) ";
> $sql .= "values ('$esc_daten', '$name', $size, '$typ',
>'$htmlstr');";
> $res = @pg_exec($sql) or die ("Fehler bei der
>Datenbankabfrage.");
>
>Regards
>Conni
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 8: explain analyze is your friend
>
>
>
>
hi Paul > Any modern version of PHP which has pg_ specific functions can do it > like this: You are 100% right. My application had to run with PHP below 4.2 where pg_escape_bytea() was not yet defined. And it works also with higher PHP versions ;-) Conni
How big file size do I stored in ByteA Field.
----- Original Message -----
From: "Paul & Natalie T" <pntil@shentel.net>
To: <pgsql-php@postgresql.org>
Sent: Tuesday, February 03, 2004 7:49 AM
Subject: Re: [PHP] Load Image from File to Store in ByteA Field
> Any modern version of PHP which has pg_ specific functions can do it
> like this:
>
> $string = pg_escape_bytea(file_get_contents($filename));
> pg_query("INSERT INTO TABLE pictures (picture_bytea) VALUES
> ('$string');");
>
> I prefer to use pg_escape() rather than code my own escape.
>
> Paul
>
> >Hi
> >
> >
> >
> >>How to Load Image from File to Store in ByteA Field?
> >>
> >>
> >This is the way I store images with PHP. The column bild has the
> >datatype bytea.
> >
> >function esc_bytea($imagedata) {
> > $finde = array(chr(92), chr(0), chr(39));
> > $ersetze = array('\\\134', '\\\000', '\\\047');
> > $esc = str_replace($finde[0], $ersetze[0], $imagedata);
> > $esc = str_replace($finde[1], $ersetze[1], $esc);
> > $esc = str_replace($finde[2], $ersetze[2], $esc);
> > return $esc;
> >}
> >
> > $fp = fopen($imagefile,"r");
> > $contents = fread($fp, filesize($imagefile));
> > fclose($fp);
> > $esc_daten = esc_bytea($contents);
> >
> > $sql = "INSERT INTO byteatest (bild, name, size, typ, htmlstr) ";
> > $sql .= "values ('$esc_daten', '$name', $size, '$typ',
> >'$htmlstr');";
> > $res = @pg_exec($sql) or die ("Fehler bei der
> >Datenbankabfrage.");
> >
> >Regards
> >Conni
> >
> >
> >---------------------------(end of broadcast)---------------------------
> >TIP 8: explain analyze is your friend
> >
> >
> >
> >
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 8: explain analyze is your friend
>
Up to about 1 gig (theoretically 2 gig max but encoding might take up some space.) On Tue, 3 Feb 2004, Muhyiddin A.M Hayat wrote: > How big file size do I stored in ByteA Field. >