Uložení/načtení obrázku z databáze – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Uložení/načtení obrázku z databáze – PHP – Fórum – Programujte.comUložení/načtení obrázku z databáze – PHP – Fórum – Programujte.com

 

Blujacker
~ Moderátor
0
Grafoman
28. 2. 2009   #1
-
0
-

Zdravím,

Obrázky potřebuji ukládat do databáze a pak je z ní načítat. Zatím se mi podařilo sesmolit následující kód. Nicméně, někde je chyba



$img= file_get_contents("http://www.matweb.cz/cgi-bin/mimetex.cgi?x=0");
$img = base64_encode($img);
//uložení do db
//nacteni z db:
$img = base64_decode($img);
header('Content-type: image/gif');
echo $img;
exit();


Kde je chyba?

Nahlásit jako SPAM
IP: 66.68.54.–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
KIIV
~ Moderátor
+43
God of flame
28. 2. 2009   #2
-
0
-

a bez toho prevodu do base64 a z nej nazpet se ti to vykresli spravne?

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Blujacker
~ Moderátor
0
Grafoman
28. 2. 2009   #3
-
0
-

Ne

Nahlásit jako SPAM
IP: 66.68.54.–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
KIIV
~ Moderátor
+43
God of flame
28. 2. 2009   #4
-
0
-

a ses si jist ze to zpracovava vubec jako binarni data? sem videl nejaky parametry u ty funkce.. ale byla tam poznamka ze to je mozna jen pro php 6

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hrach
~ Redaktor
+1
Boss
28. 2. 2009   #5
-
0
-

takze. zakomentovat hlavikcu na image a zjistit, jestli tam neni warning. nejcastejsi problem. pricina,

Nahlásit jako SPAM
IP: 90.179.27.–
http://jan.skrasek.com@hrachcz – webdeveloper
Blujacker
~ Moderátor
0
Grafoman
28. 2. 2009   #6
-
0
-

hrach napsal:
takze. zakomentovat hlavikcu na image a zjistit, jestli tam neni warning. nejcastejsi problem. pricina,


To jsem zkusil... nic... žádnou chybu to nehlásí

Nahlásit jako SPAM
IP: 66.68.54.–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
hrach
~ Redaktor
+1
Boss
28. 2. 2009   #7
-
0
-

zkus vyzkouset skript, ktery ten obrazek nacte a vypise. bez mezikroku ulozeni do db.

Nahlásit jako SPAM
IP: 90.179.27.–
http://jan.skrasek.com@hrachcz – webdeveloper
Blujacker
~ Moderátor
0
Grafoman
1. 3. 2009   #8
-
0
-

To hrach: To jsem zkusil než jsem se napsal. To je ten kód, který jsem uvedl v prvním příspěvku...

Na internetu jsem toho o tomto tématu nenašel. Na jednom fóru ukazovali tenhle kód a prý jim to fungovalo:(

Nahlásit jako SPAM
IP: 66.68.54.–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
marioff0
Expert
1. 3. 2009   #9
-
0
-

a kodovanie suboru .php je spravne? nie su tam nejake (necitatelne) znaky naviac? ja som mal pred nedavnom podobny problem... poznamkovy blok je napr. nevhodny na ukladanie v utf8... skus napr. otvorit ten subor cez pspad, nastav utf8 a daj ulozit... a vyskusaj..

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
KIIV
~ Moderátor
+43
God of flame
1. 3. 2009   #10
-
0
-

To Blujacker : no schvalne vyzkousim... delal sem si neco jako malou proxy ale v perlu... takze to neni uplne ono

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
KIIV
~ Moderátor
+43
God of flame
1. 3. 2009   #11
-
0
-

tak sem testnul a v pohode to funguje ...

<?php

$img= file_get_contents("http://www.matweb.cz/cgi-bin/mimetex.cgi?x=0");
$img = base64_encode($img);
//uložení do db
//nacteni z db:
$img = base64_decode($img);
header('Content-type: image/gif');
header('Content-Lenght: '. strlen($img));
echo $img;
?>


http://fik.atspraha.cz/kiivtest/test3.php

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Blujacker
~ Moderátor
0
Grafoman
1. 3. 2009   #12
-
0
-

To marioff : Používám PSPad - kodování je utf-8

To KIIV : Ten odkaz mi funguje, ale když zkopíruji kód, tak to nefunguje - http://maths.cz/get_math.php

Obsah souboru get_math.php



<?php
$img= file_get_contents("http://www.matweb.cz/cgi-bin/mimetex.cgi?x=0");
$img = base64_encode($img);
//uložení do db
//nacteni z db:
$img = base64_decode($img);
header('Content-type: image/gif');
header('Content-Lenght: '. strlen($img));
echo $img;
?>


Tak teď nechápu, čím to je...

Nahlásit jako SPAM
IP: 66.68.54.–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
KIIV
~ Moderátor
+43
God of flame
1. 3. 2009   #13
-
0
-

stahl sem pres wget to tvoje a moje... tvuj vypisuje jeste nejake 3 znaky na zacatku... je otazkou jestli to neni signatura UTF8...
zkus to ulozit jako treba cp1250
ikdyz pokud nemas zaplej buffer vystupu tak by nesly ani hlavicky


EDIT: koukal sem na http://cs.wikipedia.org/wiki/UTF-8 (wiki) a skutecne mas prvni tri znaky signaturu BOM ... viz link..
0xEF 0xBB 0xBF jeste pred GIF
vypni v pspadu ukladani teto signatury..

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Blujacker
~ Moderátor
0
Grafoman
1. 3. 2009   #14
-
0
-

S kódováním cp1250 to funguje. Zvláštní, nečekal jsem, že by za takovýmto problémem mohlo stát kodování

Nahlásit jako SPAM
IP: 66.68.54.–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
hrach
~ Redaktor
+1
Boss
1. 3. 2009   #15
-
0
-

problem je v tom BOM. je lepsi ho vubec nepouzivat.

Nahlásit jako SPAM
IP: 90.179.27.–
http://jan.skrasek.com@hrachcz – webdeveloper
tom*p0
Stálý člen
1. 3. 2009   #16
-
0
-

BOM je svině, už jsem strávil hodiny řešením podobných problémů... Podmínkou funkce Header je, že se musí objevit předtím, než je jakýkoliv output, a s BOM je tříznakový output ještě před <?php.

Nahlásit jako SPAM
IP: 83.240.120.–
Don't waste your time, or time will waste you.
KIIV
~ Moderátor
+43
God of flame
1. 3. 2009   #17
-
0
-

To tom*p : no jasne ale v php.ini se da zapnout output buffering :) tim headery posle v klidu a az pak se poslou data...

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
tom*p0
Stálý člen
1. 3. 2009   #18
-
0
-

ale je možné zapnout buffer ještě předtím než se odešlou ty tři znaky?
EDIT: aha, v php.ini :smile12:

Nahlásit jako SPAM
IP: 83.240.120.–
Don't waste your time, or time will waste you.
Blujacker
~ Moderátor
0
Grafoman
2. 3. 2009   #19
-
0
-

Všem děkuji za pomoc.

Narazil jsem na takový menší problém a doopravdy mě nenapadá, co by mohlo být příčinou. Proč se některý obrázek vypadá po jinak, než kdybych ho normálně otevřel, viz:
zk.php - http://maths.cz/zk.php
mělo by se zobrazit [url]http://www.matweb.cz/cgi-bin/mimetex.cgi?\begin{matrix} -1 & | & 1 & 3& 0 & -5 \\ & | & & -1&-2 &2 \\ & | & 1 &2 & -2&-3 \\ \end{matrix}[/url]



<?php
$img= file_get_contents("http://www.matweb.cz/cgi-bin/mimetex.cgi?\begin{matrix} -1 & | & 1 & 3& 0 & -5 \\ & | & & -1&-2 &2 \\ & | & 1 &2 & -2&-3 \\ \end{matrix}");
$img = base64_encode($img);
//uložení do db
//nacteni z db:
$img = base64_decode($img);
header('Content-type: image/gif');
header('Content-Lenght: '. strlen($img));
echo $img;
?>


Napadá někoho nějaké řešení jak se tohoto nedostatku zbavit?

Nahlásit jako SPAM
IP: 66.68.54.–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
KIIV
~ Moderátor
+43
God of flame
2. 3. 2009   #20
-
0
-

To Blujacker : zkus:



$img= file_get_contents("http://www.matweb.cz/cgi-bin/mimetex.cgi?".urlencode('\begin{matrix} -1 & | & 1 & 3& 0 & -5 \\ & | & & -1&-2 &2 \\ & | & 1 &2 & -2&-3 \\ \end{matrix}').);



prohlizec tam ty mezery a specialni znaky nahradi ale php nikoliv .. mohlo by to byt tim

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
marioff0
Expert
2. 3. 2009   #21
-
0
-

To Blujacker : tak ako som vravel , ked sa zda byt vsetko OK ale to nefunguje tak ako ma, na vine je kodovanie... (okamzite skontrolujem vyskyt znakov na zaciatku)...

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý