abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

včera 13:33 | Pozvánky

Byly stanoveny termíny konferencí LinuxDays 2017 a OpenAlt 2017. Letošní LinuxDays proběhne o víkendu 7. a 8. října v Praze v Dejvicích v prostorách FIT ČVUT. Letošní OpenAlt proběhne o víkendu 4. a 5. listopadu na FIT VUT v Brně.

Ladislav Hagara | Komentářů: 0
včera 11:11 | Komunita

Jiří Eischmann z desktopového týmu Red Hatu se v příspěvku Linuxový desktop: Co vám chybí na svém blogu ptá, co uživatele na Fedora Workstation a na linuxovém desktopu obecně trápí a co by desktopový tým mohl zlepšit. Pokud máte nějaké podněty, napište mu je do komentářů.

Ladislav Hagara | Komentářů: 44
včera 03:33 | Nová verze

Byla vydána nová verze 0.25.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Z novinek lze zmínit například podporu DVB-T2. Další části mpv byly přelicencovány z GPLv2 nebo novější na LGPLv2.1 nebo novější (#2033).

Ladislav Hagara | Komentářů: 0
včera 02:22 | Zajímavý projekt

Na Bundle Stars byla spuštěna akce Dollar Forever Bundle. Za 1 dolar lze získat 24 počítačových her bežících na platformě Steam také v Linuxu.

Ladislav Hagara | Komentářů: 2
24.4. 23:44 | Zajímavý software

Lychee je jedním z open source softwarů pro tvorbu webových fotoalb. Vyžadováno je PHP 5.5 nebo novější a MySQL. Ukázka na stránkách projektu. Zdrojové kódy jsou k dispozici na GitHubu pod open source licencí MIT [reddit].

Ladislav Hagara | Komentářů: 5
24.4. 22:22 | Zajímavý software

Společnosti Haivision a Wowza společně oznámily vznik SRT Alliance a otevření protokolu pro streamování videa SRT. Podrobnosti v FAQ. Zdrojové kódy SRT jsou k dispozici na GitHubu pod open source licencí LGPLv2.1.

Ladislav Hagara | Komentářů: 0
24.4. 12:33 | Humor

Byl vydán remake filmu Ghost in the Shell. Tentokrát v Bashi. Zhlédnout lze online na "ssh ghost@theshell.xyz" [Hacker News].

Ladislav Hagara | Komentářů: 16
23.4. 20:40 | Zajímavý článek

Lukáš Růžička v článku S Hydrogenem za lepší rytmus aneb bubeníkem snadno a rychle na MojeFedora.cz představuje automatického bubeníka s názvem Hydrogen (Wikipedie): Hydrogen je velmi vydařený program, který rozhodně nesmí chybět ve výbavě žádného linuxového muzikanta. Umožňuje nejen vytváření jednoduchých bicích doprovodů, ale také sofistikované programování bicích a perkusí, jehož výsledek se naprosto vyrovná drahým

… více »
Ladislav Hagara | Komentářů: 17
23.4. 13:55 | Zajímavý projekt

UPSat (Twitter) je první open source nanodružice (CubeSat). Jedná se o společný projekt nadace Libre Space Foundation a University of Patras. Repozitáře projektu jsou k dispozici na GitHubu. Pod Libre Space Foundation patří také projekt SatNOGS (zprávička), projekt globální sítě open source pozemních satelitních stanic, vítězný projekt soutěže The Hackaday Prize 2014. UPSat je součástí mise QB50 (Twitter). ID UPSatu je GR02. GPS přijímač na UPSatu je od české společnosti SkyFox Labs. Součástí mise QB50 je i česká nanodružice VZLUSAT-1 s ID CZ02.

Ladislav Hagara | Komentářů: 5
21.4. 15:00 | Komunita

V diskusním listu Thunderbird planning vývojáři poštovního klienta Thunderbird řeší, zda by nebylo možné budoucí Thunderbird postavit nad webovými technologiemi, tj. nad Electronem, stejně jako například Nylas Mail. Gecko, nad kterým je Thunderbird postaven, se má hodně změnit. V plánu je odstranění vlastností, které Firefox už nepotřebuje, ale Thunderbird je na nich závislý [Hacker News, reddit].

Ladislav Hagara | Komentářů: 103
Chystáte se pořídit CPU AMD Ryzen?
 (4%)
 (34%)
 (0%)
 (7%)
 (45%)
 (9%)
Celkem 299 hlasů
 Komentářů: 38, poslední dnes 00:31
    Rozcestník

    Dotaz: Nahráváním obrázku do databáze Mysql

    2.8.2008 22:30 Začátečník
    Nahráváním obrázku do databáze Mysql
    Přečteno: 10658×
    Vím, že se píše, že to není moc praktické, ale chtěl bych si nahrát obrázky jpg do databáze. Jsou tak kolem 100 KB, takže by snad s rychlostí neměl být problém. Celá databáze by měla fungovat tak, že v jedné řádce bude vše, co by se pak mělo zobrazit v jednom odstavci. Včetně obrázku. Hosting je na www.cesky-hosting.cz. Normálně by asi mělo pro příjem přes formulář fungovat
    $foto = addslashes(fread(fopen($_FILES["foto"]["tmp_name"], "rb"), $_FILES["foto"]["size"])); 
    Problém je, že se musí soubor dostávat na server přes move_uploaded_file. V nápovědě mají jednoduchý příklad použití funkce move_uploaded_file:
     move_uploaded_file($_FILES["muj_soubor"]["tmp_name"],"./nahrane_soubory/novy_soubor");
    
    To ale není to, co bych chtěl. Navíc s jejich podporou není moc dohoda. Skript na nahrávání tvořím poprvé. Jak v tomhle případě dostat nějak elegantně fotku do databáze? Za případné odpovědi předem děkuji.

    Odpovědi

    Heron avatar 2.8.2008 22:49 Heron | skóre: 51 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Celá databáze by měla fungovat tak, že v jedné řádce bude vše, co by se pak mělo zobrazit v jednom odstavci.

    Cože? To se bude počet sloupců postupně narůstat podle max počtu obrázků v nějakém odstavci? Toto není dobré řešení.

    Co obrázek to záznam, obrázek jako BLOB (MEDIUMBLOB by mohl stačit) a unikátní index obrázku, případně jestě info o rozměrech obrázku (pro attr width a height) atd. A odkazovat se na něj přes id.

    3.8.2008 16:30 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Tak znovu: Co ti tedy nefunguje? Co jsi zkoušel? Jaké chyby ti to psalo? Chápu to správně, že tvým problémem není žádná MySQL, ale obyčejné načtení uploadovaného souboru?
    3.8.2008 22:34 Začátečník
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Přesně by to mělo fungovat tak, že ke každému odstavci bude maximálně jedno foto a nebude se jednat o souvislý text. Přesněji, každý odstavec úplně o něčem jiném. Spíš by bylo lepší napsat zpráva než odstavec. Odstavec je to z pohledu zobrazení. Jednotlivé odstavce budou odděleny čarou.

    Jakýsi upload funguje, ale ani nevím, jestli sem vůbec psát, jak jsem to vyřešil. Fotku prostě uploaduji na server jako temp.jpg a pak jí nahraji do databáze. Zatím je to pracovní verze, takže to ledacos chybí. Ani netuším, jestli je tam fotka ve správném formátu. Dá se to nějak prohlédnout aniž bych jí musel zobrazovat na stránce? V phpMyAdmin je správně velikost, ale náhled se mi nikde nepodařilo najít.

    echo "
    Zadali jste fotku".$_POST['foto']; move_uploaded_file($_FILES["foto"]["tmp_name"],"temp.jpg"); // upload fotky na server $fp = fopen("temp.jpg", "rb"); $binarydata = addslashes(fread($fp, filesize("temp.jpg"))); ............................................. $prikaz = "INSERT INTO $tb (Poradi, Text, Foto, Dalsi) VALUES('$index', '$text', '" . $binarydata . "', '$dalsi')"; // zápis do databáze.
    Je to jednoduché, primitivní a aspoň na první pohled funkční, ale nepřipadá mi to zrovna nejelegantnější. Přivítal bych nějaký typ, jak to napravit a vaše zkušenosti, jestli tohle řešení ukládá funkční .jpeg. Našel jsem ho ve článku z roku 2004 na linuxsoftu. Možná se od té doby něco změnilo

    Další co budu řešit, je zobrazení. Můžete mi sem, prosím, dát něco spolehlivého, co zaručeně funguje, pokud je obrázek v databázi správně? Řešení jsem našel víc, ale o spoustě z nich jsem se pak někde v diskusi dočetl, že nefungují nebo jsou články poměrně staré. Předem děkuji.
    4.8.2008 08:16 Christof | skóre: 22 | Havířov
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Za prvé, obrázky je lepší ukládat do nějakého adresáře a do databáze jen odkazy na ně. move_uploaded_file je zbytečný krok, můžeš přece rovnou načítat ten dočasný soubor. Databáze nepozná, jestli tam je obrázek nebo něco jiného, prostě to jsou nějaká binární data. Takže náhled dostaneš tak, že vytáhneš data z databáze a zobrazíš si je jako obrázek (buď si je ulož do souboru nebo v PHP nech vypsat a přidej správné hlavičky).
    4.8.2008 08:26 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Za prvé, obrázky je lepší ukládat do nějakého adresáře a do databáze jen odkazy na ně.
    Nic není jen tak lepší. Je to lepší jen v něčem a v něčem jiném zase ne. Pokud těch obrázků bude celkem pět a půl, pak to snad pro MySQL problém nebude a navíc se nebude muset šachovat se soubory na disku, s jejich oprávněním apod. (při safe_mode víc problémů než užitku). Jen je potřeba si uvědomit, co znamenají několikakilobajtové bloby v tabulce - že např. sekvenční prohledávání může být pomalejší, nebo že dump databáze může trvat déle.
    pavlix avatar 18.8.2008 15:16 pavlix | skóre: 53 | blog: pavlix
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Pokud jich bude pět a půl, tak nemusí šachovat s databází (jen jiný pohled na stejnou věc).
    30.12.2008 20:58 moira | skóre: 30 | blog: nesmysly
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Jen pro zajímavost - celá Encyklopedie Diderot byla takto "narvaná" do embedded mysql databáze a myslím, že to fungovalo celkem bez problémů...
    Překladač ti nikdy neřekne: "budeme kamarádi"
    4.8.2008 08:38 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Vypadá to relativně dobře. Místo addslashes by možná bylo lepší nějaké mysql_real_escape, ale stejně to dělá asi to samé... Pak ještě to move_uploaded_files, jak již bylo zmíněno.

    Kód je ale jinak celkem hrozný :-) Tedy pokud i ve skutečnosti vypadá takhle a nezjednodušil jsi ho kvůli vložení sem. Typicky PHPkové promíchávání výstupu s funkčním kódem. Neověřování návratových kódů. Sloupeček s úchvatným jménem Dalsi (to je skoro tak výmluvné jako sloupec pojmenovaný Sloupec) :-)

    Možná budeš chtít provádět i nějakou změnu velikosti obrázku. Až ti tam někdo nahraje fotku přímo z foťáku s 8 megapixely, moc dobře to na webu vypadat nebude. Nebo aspoň by bylo dobré ověřit, že uploadovaný soubor je skutečně obrázek (a to nejlépe obrázek v nějakém rozumném grafickém formátu). Pak mám ještě ve zvyku si k obrázku ukládat jeho rozměry, abych je mohl uvést v html tagu img, protože se pak stránka nesesype, když se obrázek nenačte (nebo dokud se nenačte).
    Dalibor Smolík avatar 4.8.2008 20:26 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Zatím jsem v "ostrém" provozu v databázi obrázky neměl, ale neviděl bych problém je mít v extra adresáři s příslušným odkazem.
    Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
    4.8.2008 21:56 Začátečník
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Děkuji. Jak jsem již napsal, je to pracovní verze a kód jsem pochopitelně výrazně krátil. Stejně tak názvy v tabulce nejsou definitivní.Teď mám ještě jeden problém. Je to úplná prkotina, ale bez ní se nehnu. Pracuji v Quanta plus. Nefunguje mi
    <  echo " <"img" src="Mertlm.jpg"  width="110" height="154" hspace="10" align="left" border="0"> " >
    
    Musel jsem přidat uvozovky u značky pro obrázek, protože není povolena a smazat 2 otazníky, takže php v ukázce uvozují jen < a končí >, ale jinak se mi po přidání obrázku do php kódu stránka vůbec nevygeneruje. U jiného souboru, který jsem měl možnost tvořit na jiném editoru se mi to podařilo v tomhle tvaru zprovoznit. S proměnou jsem to nezkoušel. Nevíte někdo, jestli je to kódováním nebo něčím podobným? Je to docela nepříjemné, protože bez toho nemůžu teď natvrdo zadanou fotku nahradit proměnou.
    Dalibor Smolík avatar 4.8.2008 23:32 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Napadlo mě: po echo je text v uvozovkách, ale pokud jsou ještě další uvozovky uvnitř, je nutné před ně dát vždy zpětné lomítko. Asi to víte, ale pro jistotu bych to zkontroloval.
    Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
    5.8.2008 09:24 Alcor | skóre: 20
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    < echo '<"img" src="Mertlm.jpg" width="110" height="154" hspace="10" align="left" border="0">'; >
    5.8.2008 20:51 Začátečník
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Děkuji. V mém případě to funguje obráceně. echo " a až pak '. Proč to tak je a proč to jednou funguje " " a podruhé ne, to je mi záhadou. Člověk asi nemůže rozumět všemu. Podstatné je, že to nějak jde. Problém je, že když zadám obrázek na tvrdo a ne z databáze, vše funguje, jak má. Když ale dám ten z databáze, zobrazí se jen rozsypaný čaj. Kód vypadá
     < php header("Content-type: image/jpeg");
    .....
     pak kontaktovat databázi
    ......
    a vypsat všechny řádky
    
    while (list($poradi,$text, $foto, $dalsi) = mysql_fetch_row($navrat)){
    echo("  
    <"img" src= '$foto' width='110' height='154' hspace='10' align='left' border='0'>
    $text
    $dalsi

    " ); } php >
    Výsledek je, že text je v pořádku a obrázek rozsypaný čaj. Zkoušel jsem už i nahrát obrázek přes MyAdmin, ale výsledek byl ten samý. V uploadu to tedy asi není a i zobrazení by fungovat mělo protože s fotkou na webu vše funguje. Co dělám špatně?
    6.8.2008 10:21 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    jak jiz bylo psano vyse pokud si fotku nacitate z DB je nutne priradit i spravne hlavicky. mit obrazky v DB je celkem opruz lepsi je je nahrat do adresare a v DB mit pouze jejich jmena.
    DjAARA avatar 6.8.2008 11:31 DjAARA | skóre: 32 | Praha|Náklo|Olomouc
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Načítání obrázků z databáze je opruz a nelze to udělat tak jednoduše jak si představujete. Ve stránce s obrázky musíte mít v tagu <img src="getfoto.php?id=1" … > odkaz na skript (třeba použitý getfoto), který obrázek z databáze vytáhne a pošle ho klientovi. Aby bylo možné odeslat správný obrázek, je třeba skriptu předat pomocí parametru nějaký jednoznačný identifikátor obrázku (id v databázi například).

    getfoto.php:
    <?php
      if (isset($_GET['id']) {
        $id = $_GET['id'];
      } else {
        die('Fotka nenalezena…');
      }
      … // vyhledání obrázku v databázi podle jeho id
      if ($row = mysql_fetch_row($result)) {
        header('Content-type: image/'. $row[x]); //odeslání typu obrázku (png/jpg...)
        echo $row[data]; //binární data obrázku
      }
    ?>
    
    6.8.2008 16:27 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Za echo $row[data] doporučuji dát ještě exit(), aby cokoliv, co by mohlo jít ještě neúmyslně na výstup (typicky znaky konce řádku, pokud jich je za ?> více) nebylo považováno za data obrázku.
    vackar avatar 7.8.2008 01:42 vackar | skóre: 6 | blog: Obludnosti | Praha
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Ja ve svy galerii delam neco podobnyho. Nacitam fotky scriptem, ale ze souboru. Delam to kvuli opravneni. Aby si nekdo neregistrovany nevytah fotky na ktery nema mit prava.. Jen mi to ze zacatku blblo v opere. Vzdycky se mi nacetla jen cast fotky a zbytek ne a ne se nacist. Resenim je pridat na konec toho scriptu prikaz flush(), ktery odesle zbytek dat ze zasobniku klientovi. Hodne stesti!
    Prosím nevykat!
    6.8.2008 22:26 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Rozdil mezi uvozovkama a apostrofem je v tom, jak zachazi s promennou v retezci.
    $p = "nejaky";
    echo "V promenne je $p text";
    vypise
    V promenne je nejaky text
    Kdezto
    $p = "nejaky";
    echo 'V promenne je $p text';
    vypise
    V promenne je $p text
    Potrebujes-li vypsat uvozovky, lze to dvema zpusoby:
    echo "Nejaky \"text\"";
    echo 'Nejaky "text"';
    Vypise se ti
    Nejaky "text"
    Nejaky "text"
    Ja osobne pouzivam prvni zpusob (zpetne lomitko) - nemuze se mi stat, ze by se mi vypsalo jmeno promenne misto jejiho obsahu (pokud uz tu promennou vyjimecne uvedu primo do vypisovaneho retezce).

    Pokud ale placam nesmysly, prosim zkusenejsi, aby me poslali tam, kam patrim :-)

    Dejv
    Pevne verim, ze zkusenejsi uzivatele me s mymi napady usmerni a poslou tam, kam tyto napady patri...
    6.8.2008 22:36 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Nejsem si tim uplne jisty, ale mam za to, ze Content-type je treba nastavit kazdemu jednotlivemu obrazku a ne takhle hromadne, jak to mas. Takze jak uz tady nekdo nekde zminil - je treba mit dva skripty. V prvnim poslat prohlizeci seznam obrazku a nechat prohlizec, at si o kazdy obrazek "zavola" na server - ten druhy skript, ktery nacte vzdy jen jeden obrazek a posle ho se spravnym Content-type.
    Pevne verim, ze zkusenejsi uzivatele me s mymi napady usmerni a poslou tam, kam tyto napady patri...
    10.8.2008 22:07 Začátečník
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Děkuji vám všem za pomoc a ochotu. Zatím se mi s tím nepodařilo výrazněji pohnout. Můžete sem prosím někdo dát konkrétní skript na načítání fotek z databáze, který funguje? Našel jsem jich několik, každý úplně jiný. Všechny ale aspoň 2 roky staré. Zdá se mi, že v tom, co jsem udělal já, je nějaká chyba, a nemůžu na ní přijít. Nejspíš to bude něco zásadního, jako mezera nebo podobně, ale úplně to stačí, abych řešil jakou dobu chybu a ne načítání obrázku. Čas je bohužel to, co teď až tak moc nemám.

    Tak mě napadá. Nebylo by snazší obrázek zakódovat a pracovat s ním v téhle podobě? Z databáze by se jich mělo načítat tak 5 najednou a většinou jsou kolem 10 nebo 20 KB. Myslím si, že v tomhle případě zpomalení nebude moc znát.

    11.8.2008 02:41 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Jak chceš uživateli poslat zároveň víc obrázků najednou? Data obrázku sice do HTML vložit za určitých podmínek jdou, ale takhle by se to dělat rozhodně nemělo.

    Prostě musíš mít jeden PHP skript, který bude generovat <img src="getimg.php?id=123">, a druhý PHP skript, getimg.php, ve kterém bude patřičný header(), a poslání dat obrázku 123.

    To, že některá technologie je tak nestálá, že v ní nelze použít kód vytvořený před dvěma lety si komentář snad ani nezaslouží. Já třeba zcela normálně potkávám software, se kterým se dvacet let už téměř vůbec nehýbe (protože není v PHP).

    Tady jsem připravil jeden příklad:

    SQL:
    CREATE TABLE `pictures` (
      `id` int(10) unsigned NOT NULL auto_increment PRIMARY KEY,
      `data` blob,
      `title` varchar(255) default NULL
    )
    upload.php:
    <?php
    if (! empty($_POST["title"])) {
            $filename = $_FILES["soubor"]["tmp_name"];
            $db = new mysqli("localhost", "fotky", "xxx", "test");
            $title = $db->real_escape_string(stripslashes($_POST["title"]));
            $data = $db->real_escape_string(file_get_contents($filename));
            $db->query("INSERT INTO pictures (title, data) VALUES ('$title', '$data')");
            echo "Soubor vlozen pod id " . $db->insert_id;
            $db->close();
    }
    ?>
    <form method="post" enctype="multipart/form-data">
    Title: <input name="title"><br>
    <input type="file" name="soubor"><br>
    <input type="submit">
    </form>
    
    galerie.php:
    <?php
    $db = new mysqli("localhost", "fotky", "xxx", "test");
    $result = $db->query("SELECT id, title FROM pictures");
    
    while ($row = $result->fetch_row()) {
            echo "<img src='getimg.php?id=${row[0]}' alt='${row[1]}'>";
    }
    
    $db->close();
    ?>
    getimg.php:
    <?php
    $db = new mysqli("localhost", "fotky", "xxx", "test");
    
    $result = $db->query("SELECT data FROM pictures WHERE id=" . ((int) $_GET['id']));
    
    header("Content-Type: image/jpeg");
    
    $row = $result->fetch_row();
    echo $row[0];
    
    $db->close();
    exit();
    ?>
    Máš tam jak upload, tak zobrazování fotek z databáze (a nic jiného; to title je tam spíš jen na ukázku). Jen upozorňuji, že ten kód jsem sesmolil teď narychlo, v PHP už jsem dlouho nic nedělal a pod tento kód bych se jinak raději ani nepodepsal, protože mu stále hodně chybí (je poněkud minimalistický :-)). Nicméně je funkční, zkoušeno na PHP 5.2.6.
    12.8.2008 20:09 Začátečník
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Moc děkuji. Zkoušel jsem a všechno funguje bezvadně. Kromě uploadu a zobrazování fotky z databáze. Do databáze se zapíše všechno, co ve formuláři zadám, ale fotka se tam neobjeví. Zrovna tak při zobrazování se vypíše alternativní text, ale nezobrazí se fotka. Tu jsem tam nahrál přes MyAdmin. U uploadu bude zřejmě jediná možnost ta, kterou jsem jsem to vyřešil, jak jsem psal hned na začátku, protože to tak mají naspáno v technické podpoře, ale proč nefunguje zobrazování, když skript je u jiných položek evidentně funkční, to je mi záhadou.
    29.12.2008 19:17 FMTB_Agency
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql

     

     

    ukazuje mi to tuto chybu:
    Fatal error: Cannot instantiate non-existent class: mysqli in /3w/czechian.net/b/bike/test-fotky/upload.php on line 4

    4 radek je pripojeni k db.
    pritom to mam vyplnene 100% dobre.

     

    Tarmaq avatar 29.12.2008 20:22 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    s/mysqli/mysql_connect/g
    Don't panic!
    29.12.2008 21:01 FMTB_Agency
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql

    nechapu...

    Tarmaq avatar 29.12.2008 21:10 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql

    tzn. zkuste misto
    new mysqli pouzit mysql_connect
    a misto $db->query napsat mysql_query

    atd.

    Don't panic!
    29.12.2008 21:31 FMTB_Agency
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql

     if (! empty($_POST["title"])) {
            $filename = $_FILES["soubor"]["tmp_name"];
            $db = mysql_connect("mysql.webzdarma.cz", "bike45", "ex66fd", "bike45");
            $title = $db->mysql_real_escape_string(stripslashes($_POST["title"]));
            $data = $db->mysql_real_escape_string(file_get_contents($filename));
            $db->mysql_query("INSERT INTO pictures (title, data) VALUES ('$title', '$data')");
            echo "Soubor vlozen pod id " . $db->insert_id;
            $db->close();

    takto ?

    Tarmaq avatar 29.12.2008 22:30 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Myslel jsem to tak, abyste ten kod prepsal do takove formy, ktera nepotrebuje tridu mysqli. Tedy zdrojaky od Messy by mely vypadat takto bez pouziti mysqli (netestovano):

    upload.php:
    <?php
    if (! empty($_POST["title"])) {
            $filename = $_FILES["soubor"]["tmp_name"];
            $db = mysql_connect("localhost", "fotky", "xxx", "test");
            $title = mysql_escape_string(stripslashes($_POST["title"]));
            $data = mysql_escape_string(file_get_contents($filename));
            mysql_query("INSERT INTO pictures (title, data) VALUES ('$title', '$data')");
            echo "Soubor vlozen pod id " . mysql_insert_id();
            mysql_close($db);
    }
    ?>
    <form method="post" enctype="multipart/form-data">
    Title: <input name="title"><br>
    <input type="file" name="soubor"><br>
    <input type="submit">
    </form>
    
    galerie.php:
    <?php
    $db = mysql_connect("localhost", "fotky", "xxx", "test");
    $result = mysql_query("SELECT id, title FROM pictures");
    
    while ($row = mysql_fetch_row($result)) {
            echo "<img src='getimg.php?id=${row[0]}' alt='${row[1]}'>";
    }
    
    mysql_close($db);
    ?>
    
    getimg.php:
    <?php
    $db = mysql_connect("localhost", "fotky", "xxx", "test");
    
    $result = mysql_query("SELECT data FROM pictures WHERE id=" . ((int) $_GET['id']));
    
    header("Content-Type: image/jpeg");
    
    $row = mysql_fetch_row($result);
    echo $row[0];
    
    mysql_close($db);
    exit();
    ?>
    
    Don't panic!
    Tarmaq avatar 29.12.2008 22:37 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    jo a jeste koukam ze misto
    $db = mysql_connect("localhost", "fotky", "xxx", "test");
    
    napiste
    $db = mysql_connect("localhost", "fotky", "xxx");
    mysql_select_db("test");
    
    Don't panic!
    29.12.2008 22:41 FMTB_Agency
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql

    OK. diky moc. Uz je to OK... ale presto me trapi, ze nevim do jake slozky se ma ukladat obrazek.

    Tarmaq avatar 4.1.2009 12:09 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    Jak do jake slozky? uklada se do sloupce data, ktery je typu blob..
    Don't panic!
    29.12.2008 22:38 FMTB_Agency
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql

    diky za zdrojak. zkousim to, ale nezapisuje se to do db... krome toho, do jake slozky se ma nahrat ten uploadovany obrazek ?

    10.8.2010 11:35 rover218
    Rozbalit Rozbalit vše Re: Nahráváním obrázku do databáze Mysql
    zdarec, aj by to fungovalo ale zobrazuje to len ten titulok a nie obrazok

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.