Ako na ukladanie a zobrazovanie obrazkov do databazy?

Vladimir Rengevic vlado na grafon.sk
Neděle Únor 10 23:16:09 CET 2002


Pekny vecer :)
> 
> Problem asi nebude v PgSQL ale v PHP skriptu.
> Mozna by nebylo spatne pouzit neco jako base64.
> 
> base64_encode(fread($fp, filesize($foto)))
> base64_decode($data)
> 
> Stejne bych Vam spis doporucil si je ukladat na disk. Ma to IMHO vic vyhod 
> nez nevyhod.
> A budte rad, ze delate s PgSQL. MySQL se z binarek v DB pekelne jebe (vetsi 
> binarky, radove MB). Pravda, duvod je zdokumentovany. A do PgSQL jsem nikdy 
> vetsi binarky nedaval, treba se jebe taky :)

No su to obrazky tak do 100k, takze nic moc velke. A chcem to tak skusit preto,
ze davnejsie mi radili ze je to podstatne rychlejsie ako otvarat subory z disku.
A keby to fungovalo bol by v tom aj vacsi poriadok.

> 
> A ten skript obrazok1.php je asi nejaky orezany, co? Pokud ne tak je docela 
> divny :)
No snazil som sa ho napisat co najjednoduchsie. Bez "blbuvzdronsoti"
len zaklad ktory sa potom "obali"...

Vlado 
> >
> > uz dost dlho sa trapim s ulozenim obrazkov do databazy a ich zobrazenim.
> >
> > Pouzivam Postgress. Obrazok mam definovany ako BLOB teda "bytea".
> >
> > Dostat ho tam chcem (v $foto1s mam meno suboru z
> > <INPUT TYPE="FILE" NAME="foto1s" ACCEPT="image/jpg">:
> >
> > ---------------------------------
> > if ($foto1s<>"none"):
> >           $fp=FOpen($foto1s,"r");
> >           $foto1=AddSlashes(FRead($fp,FileSize($foto1s)));
> >           FClose($fp);
> >           unlink($foto1s);
> > endif;
> > $vysledok=Pg_Exec($spojenie,"INSERT INTO objekty
> >              (objekt,nazov,lokalita,popis,vyska,foto1) VALUES
> >              ('$objekt','$nazov','$lokalita','$popis',$vyska,'$foto1');
> > ---------------------------------
> >
> >
> > Zobrazit sa ich pokusam:
> >
> > ...
> > <IMG SRC="obrazok1.php?i='.$i.'">
> > ....
> > pricom v $i mam ID riadku, ktory chcem zobrazit. Ostatne polozky
> > zobrazm bez problemov...
> >
> > Skript obrazok1.php
> > -----------------------------------
> > <?
> > Header("Content-type: image/pjpeg");
> > @$spojenie=Pg_Connect("host=localhost dbname=ths user=XXX password=XX");
> > $vysledok=Pg_Exec($spojenie,"SELECT foto1 FROM objekty");
> > $zaznam=Pg_Fetch_Array($vysledok,$i);
> > echo $zaznam["foto1"];
> > ?>
> > ------------------------------------
> > No a vysledok je jedinny-nezobrazitelny obrazok. Predpokladam,
> > ze problem je v ukladani dat do databazy, ale neviem ako to otestovat.
> > Ked pozrem riadkovym klientom tak tam nieco je, ale vzhladom na to,
> > ze je to binarna zaletitost netusim ci to co by som potreboval....




Další informace o konferenci Test