Autor Zpráva
Error_404
Profil *
Neumim si poradit s otevranim (a ukladanim) obrazku z databaze, kde je ulozeny v BLOBu.

Na ukladani do souboru nemam dostatecna opravneni, takze je jedina moznot primo do databaze.

Nalezl jsem takovouto moznost:

function image()
  {
        $sql = "SELECT obr FROM slozky WHERE idz = '1' ";

        $result = $spojeni->query($sql);

        $BA = new ByteArray($result->fetch_object()->obr);

        return $BA;
  }


ale neumim precist vystup BA.
Error_404
Profil
Edit:
spojeni je spojeni s databazi.
obr je sloupec BLOB.


Notice: Undefined variable: spojeni in /home/studenti/martin.hencl/public_html/2009-5-12-eten/galery.php on line 12
$spojeni vytvarim hned na zacatku, ostatni fce nemaj problem.

Fatal error: Call to a member function query() on a non-object in /home/studenti/martin.hencl/public_html/2009-5-12-eten/galery.php on line 12
A to je to, co nejak nechapu a nevim, jak nahradit.
Mastodont
Profil
Ta funkce to spojení nevidí, bere ho jako lokální objekt, který nebyl vytvořen
Error_404
Profil
No jo, vzdyt jsem houska...

Ale co ted s touto chybou:

Fatal error: Class 'ByteArray' not found in /home/studenti/martin.hencl/public_html/2009-5-12-eten/galery.php on line 14

Ja proste nevim, co z te databaze dostanu.
Kajman_
Profil *
Při výběru z db snad můžete pracovat s binárními daty jako s textem, tam se to lišit asi nebude. Jen musíte nejdříve vypsat http hlavičku určující typ obrázku.

Pro ukládání prožeňte data funkcí http://cz2.php.net/manual/en/function.mysql-real-escape-string.php a pak také stačí normální insert nebo update jako u textových položek.
Error_404
Profil
Muzu to vytahnout jako text, ale potom me ten obrazek neni jasny.
Jak presne bych mel tu hlavicku vytvorit?

Jednoduse nevim, jak z obrazku udelam znaky a ze znaku obrazek.
Kajman_
Profil *
Hlavička záleží na typu obrázku pro jpg by to bylo např. takto.

header('Content-Type: image/jpeg');
print($result->fetch_object()->obr);


Jak si myslíte, že jsou uložené obrázky na disku... taky to jen nějaká posloupnost dat, která se neliší od uložení v databázi.
Error_404
Profil
Tak fajn, uz jsem se tim prokousal, nejvetsi problem byl, ze vystup byl v "rozsypanem caji", tak jsem vygooglil content-transfer-encoding.
$vlastnosti['mime'] dokaze sam zjistit typ obrazku.

 
$vlastnosti=GetImageSize($obrazek);
 header('Content-type: '.$vlastnosti['mime']);
   header('Content-transfer-encoding: binary');
...
      if ($vlastnosti['mime']=='image/jpeg') $src = ImageCreateFromJpeg($obrazek);
      if ($vlastnosti['mime']=='image/gif') $src = ImageCreateFromGif($obrazek);
      if ($vlastnosti['mime']=='image/png') $src = ImageCreateFromPng($obrazek);


Zatim to po lehkem vyladeni funguje, ma nekdo nejake poznamky?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: