[addon multiplefileupload] MultipleFileUpload – form control

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Matúš Matula
Člen | 257
+
0
-

honzakuchar napsal(a):

ked dumpnem $req->getHeader(„Content-type“) po odoslani formulara, tak na locale vypise daco taketo multipart/form-data; boundary=---------------------------281123069513169, na ostrom serveri je to NULL. Vie mi s tym, prosim, niekto poradit?

Tak to by mě také zajímalo. Zkus dumpnout všechny hlavičky, které se poslaly na server. Asi tam budu muset identifikovat ten požadavek nějak jinak.

Ako vidiet, tak v $_FILES odoslany subor je, ale v HttpRequeste uz nie. Pouzivam priklad z svn, su tam vsetky upravy, o kt. som sa docital v diskusii.

Ale nefunguje mi to ani bez JS. Zobrazi hlasku ako Ondrejovi ‚Musíte odeslat alespoň jeden soubor!‘ Uz som v tom uplne strateny..

$_FILES dump
array (
  'Filedata' =>
  array (
    'name' => 'ATT00029.doc',
    'type' => 'application/octet-stream',
    'tmp_name' => '/sroot/temp/php1bzf5i',
    'error' => 0,
    'size' => 523264,
  ),
)

HttpRequest dump
HttpRequest::__set_state(array(
   'query' => NULL,
   'post' => NULL,
   'files' => NULL,
   'cookies' => NULL,
   'uri' =>
  UriScript::__set_state(array(
     'scriptPath' => '/multipleFileUpload/document_root/',
     'scheme' => 'http',
     'user' => '',
     'pass' => '',
     'host' => 'ciki.gamepub.sk',
     'port' => 80,
     'path' => '/multipleFileUpload/document_root/',
     'query' => 'do=form-submit',
     'fragment' => '',
     'frozen' => true,
  )),
   'originalUri' =>
  Uri::__set_state(array(
     'scheme' => 'http',
     'user' => '',
     'pass' => '',
     'host' => 'ciki.gamepub.sk',
     'port' => 80,
     'path' => '/multipleFileUpload/document_root/',
     'query' => 'do=form-submit',
     'fragment' => '',
     'frozen' => true,
  )),
   'headers' =>
  array (
    'accept' => 'text/*',
    'cache-control' => 'no-cache',
    'connection' => 'Keep-Alive',
    'host' => 'ciki.gamepub.sk',
    'user-agent' => 'Shockwave Flash',
  ),
   'uriFilter' =>
  array (
    5 =>
    array (
      '#/{2,}#' => '/',
    ),
    0 =>
    array (
    ),
  ),
   'encoding' => 'UTF-8',
))
iguana007
Člen | 970
+
0
-

Nešlo by tento addon pls nahrát třeba někam na nette.org nebo github? To SVN uvedené na stránce s addonem nejede …

Díky igi

Honza Kuchař
Člen | 1662
+
0
-

Už by mělo – výpadek serveru.

Ad. chybka: Mrknu na to, ale z hlavy fakt nevím. Nemohl by jsi mi dát, dočasně přístup na ten hosting? Chyby se strašně špatně hledají, jenom tak z placu.

Honza Kuchař
Člen | 1662
+
0
-

Ondřej Mirtes napsal(a):

Updatnul jsem – na localhostu to už jede, ale na serveru stále před reloadem stránky na konci uploadování blikne HTTP Error a pak to zahlásí, že musím nahrát aspoň jeden soubor :(

Už je to ready?

Ondřej Mirtes
Člen | 1536
+
0
-

Ty jo, už je to 4 měsíce a fakt nevím, jak jsem to tehdy vyřešil – nejspíš jsem to vzdal a je tam 5 obyčejných polí na soubor :)

Mimochodem, kolega mi tak před týdnem říkal, že i v tom tvém ofic. demu to dělá tu samou chybu, nebyl schopný to zprovoznit ani na localhostu.

Honza Kuchař
Člen | 1662
+
0
-

http://multiplefileupload.projekty.mujserver.net/ zkus tam něco poslat. Ale vím jen o 2 zásadních chybách, které působily porblémy:

  1. volání $this->terminate(); před $application->run(); → výjimka; tohle jsem, ale opravoval v jedné z prvních revizí
  2. ten povedený mod zápisu nebo čeno na linuxu; v kódu bylo chmod(777), ale musí tam být chmod(0777); jinak to dělá něco úplně jiného

Jinak ve funkčnosti, by to už mělo být použitelné. Ale pravda je, že ty první revize byly hodně boužlivé.

Teď mám jaksi 2 velké TODO na tomto doplňku:

  1. Udělat k tomu nějaký model – teď to používá Nette\Cache
  2. Předělat vzhled – nějak mi to pořád nesedí do formuláře
Matúš Matula
Člen | 257
+
0
-

honzakuchar napsal(a):

Ad. chybka: Mrknu na to, ale z hlavy fakt nevím. Nemohl by jsi mi dát, dočasně přístup na ten hosting? Chyby se strašně špatně hledají, jenom tak z placu.

mas to v mailu

Honza Kuchař
Člen | 1662
+
0
-

Matúš Matula napsal(a):

honzakuchar napsal(a):

Ad. chybka: Mrknu na to, ale z hlavy fakt nevím. Nemohl by jsi mi dát, dočasně přístup na ten hosting? Chyby se strašně špatně hledají, jenom tak z placu.

mas to v mailu

Hned jak si najdu chvilku, tak na to mrknu.

Lopo
Člen | 277
+
0
-

snazim sa rozbehnut tento addon, narazam vsak na problem s tymto riadkom:

$template->registerFilter('Nette\Templates\CurlyBracketsFilter::invoke');

vo funkciach createSectionWithoutJS a createSectionWithJS v MultipleFileUpload.php

ked tam tieto riadky su, padne mi to cele na deprecated statickom volani invoke …
ked riadky vyhodim, tak vygenerovany kod nie je preparsovany

co s tym ?

Nette 0.9.3-dev 42e9ad2 released on 2010–01–23
addon z svn, build 22

iguana007
Člen | 970
+
0
-

Nahraď ten řádek tímto:

$template->registerFilter(new LatteFilter);

Editoval iguana007 (13. 2. 2010 20:39)

Honza Kuchař
Člen | 1662
+
0
-

Když ho smažeš, tak to musí fungovat! Mrknu na to, hned jak se k tomu dostanu.

// EDIT: Nemám pravdu! :) To platí jen u Template vytvořených Control::createTemplate().

Editoval honzakuchar (19. 2. 2010 19:41)

Honza Kuchař
Člen | 1662
+
0
-

Tak bug nalezený Matůšem Matulou opraven. Není to chyba MultipleFileUploaderu, ale Nette: https://forum.nette.org/…content-type.

// EDIT: Na tvém serveru máš funkční DEMO. Testovací účet můžeš ze svého serveru smazat. ;)

Editoval honzakuchar (19. 2. 2010 19:39)

Honza Kuchař
Člen | 1662
+
0
-

Lopo napsal(a):

snazim sa rozbehnut tento addon, narazam vsak na problem s tymto riadkom:

$template->registerFilter('Nette\Templates\CurlyBracketsFilter::invoke');

vo funkciach createSectionWithoutJS a createSectionWithJS v MultipleFileUpload.php

ked tam tieto riadky su, padne mi to cele na deprecated statickom volani invoke …
ked riadky vyhodim, tak vygenerovany kod nie je preparsovany

co s tym ?

Nette 0.9.3-dev 42e9ad2 released on 2010–01–23
addon z svn, build 22

Registrace LatteFilteru je kompletně předělaná. (kompatibilní s Nette 0.9.3) fixed

Editoval honzakuchar (19. 2. 2010 19:40)

Matúš Matula
Člen | 257
+
0
-

honzakuchar napsal(a):

// EDIT: Na tvém serveru máš funkční DEMO. Testovací účet můžeš ze svého serveru smazat. ;)

Vdaka za tvoj cas a namahu. Cenim si to ;-)

Honza Kuchař
Člen | 1662
+
0
-

Vdaka za tvoj cas a namahu. Cenim si to ;-)

Díky. Myslím, že k tomuto doplňku přidám tlačítko DONATE, protože už jsem na tom strávil opravdu hromadu času.

Honza Kuchař
Člen | 1662
+
0
-

Ahoj,
dnes jsem commitnul na SVN další verzi MFU. (obsahuje docela velké změny)

Jsou odděleny modely od MFU (i když ještě ne uplně podle mých představ, ale jsou).

Měl by být Tread-safe. (i když se zdá, že občas není; prosím někoho thread-safe-zkušenějšího (->proto je více vláken raději pořád zakázáno), aby případně poradil) Na zamykání se používá vytvoření prázdného souboru v cache. (ano pořád se používá Cache, ale už je na SVN i driver přímo na FileSystém, ale je zatím nefuknční, zase – pokud máte někdo čas, mrkněte na to)

Zatím ještě nejsou hotové Interface pro modely (jsou prázdné). Dodělám hned po tom, co si ujasním, jak by přesně měly fungovat ty thead-safe modely. Pokud máte někdo představu, nápad nebo zkušenosti, prosím napište.

Opraven bug Uploadify, když je vybrán soubor, který má velikost 0bytů. Je přeskočen a je zavolán event emptyFile, výchozí akce je alert().

Opraven bug, když je vybrán soubor větší, než dovoluje PHPko. Ještě před odesláním je soubor vyhozen fronty a je zavolán event sizeLimitExcessed, výchozí akce alert.

V příkladu je předělán Debug::dump() na tabulku.

V produkčním režimu příklad nepřesouvá soubory, ale rovou je maže. (když je příklad mimo localhost)

Přídán do distribuce Logger. Velmi usnadňuje ladění thread-safe operací.

Detekce prostřední podle IP počítače. (127.|::1 je DEVELOPMENT jinak PRODUCTION)

Automatické nastavení optimálních hodnot lifeTime a cleanInterval.

Snad jsem nezapomněl na žádné důležité změny.

//EDIT: pokud někdo chcete vědět, jak zaregistrovat vlastní model, tak napište. Je to jednoduché, ale nechce se mi to psát, pokud to nikdo nepoužije. ;)

Editoval honzakuchar (21. 2. 2010 12:42)

Honza Kuchař
Člen | 1662
+
0
-

Tak dnes další commit:

  • mírná změna API
  • staré modely smazány
  • nové modely: LogModel a SQLiteModel
  • LogModel → zapisuje do souboru volané metody → něco jako DummyStorage
  • SQLiteModel → ano to je model, který zapisuje do SQLite. Je to první verze s tímto driverem. Prosím ŘÁDNĚ otestovat. Podle toho, že SQLite by mělo být thread-safe, tak by měl být konečně thread-safe i MultipleFileUploader
    • Je možné, že to thread-safe nebude. Nepodařilo se mi totiž udělat zamykání tabulky. Nejspíš za to může sqlite2. Docela uvažuji o předělání na Dibi, popřípadě udělat další sriver, protože při odeslání 800 souborů ma SQLite DB skoro 1MB
    • V cleanupu volá vacuum → zmenšení souboru databáze.
  • Přidány BaseModely → usnadnění vytváření vlastních modelů (implementace asi osmi metod)

Editoval honzakuchar (23. 2. 2010 22:56)

Honza Kuchař
Člen | 1662
+
0
-

Co je potřeba udělat (spíš co musíte udělat):

  1. Otestovat SQLite model (výchozí), zda je opravdu thread safe. Prostě se budete pokoušet odesílat hromady souborů a budete sledovat, zda dorazí všechny. Prostě otestovat, jestli se v něm nevyskytuje nějaká zásadní krpa.
  2. 6.3.2010: Hotovo Zda běží vše tak jak má na Linuxu (nemám server na Linuxu)

Potřeboval bych, aby se to stihlo oboje do 12.3.2010! Díky!

Editoval honzakuchar (6. 3. 2010 22:47)

Mortaelth
Člen | 24
+
0
-

neslo by udelat nejaky rar se vsemi potrebnymi soubory? Nebo jak si to vytahnu z toho SVN uloziste, aniz bych to musel ukladat po jednom souboru?

norbe
Backer | 405
+
0
-

Pokud mas windows tak doporučuju TortoiseSVN.

Honza Kuchař
Člen | 1662
+
0
-

norbe napsal(a):

Pokud mas windows tak doporučuju TortoiseSVN.

Také doporučuji. (používám taky)

Mortaelth
Člen | 24
+
0
-

no ja jsem zkousel svn klienta co je v zend studiu a neproslo mi to autentizaci.. porad to chtelo heslo

iguana007
Člen | 970
+
0
-

imho to SVN proste nejede, taky jsem to ted zkousel a nejde se tam pripojit – jak pres browser, tak i pres TortoiseSVN:

Error: could not connect to server (https://svn.mujserver.net:8443)
Jod
Člen | 701
+
0
-

SVN Nejde a v clientovi nije problém, lebo som to už raz z tadial stiahol.

could not connect to server (https://svn.mujserver.net:8443)

Dva dni to mám spustené.

Honza Kuchař
Člen | 1662
+
0
-

Tak už to jede.

Panda
Člen | 569
+
0
-

Zatím se mi zdá, že na linuxu to moc nefunguje. Tváří se to sice, že je všechno OK, ale „cesta k souboru“ ukazuje do složky app/temp/uploads-MFU (místo do app/uploadedData), která je ale prázdná. Zkusím to ještě o volné chvilce trochu projít a podívat se, co by mohlo způsobovat potíže.

Honza Kuchař
Člen | 1662
+
0
-

Mělo by to složku vytvořit v módu 0777. A pokud přesto není zapisovatelná, tak to zapisuje přímo do temp. (alespoň doufám)

//EDIT: By mělo. Nevím, jestli jsem to testoval.

Editoval honzakuchar (5. 3. 2010 17:14)

Honza Kuchař
Člen | 1662
+
0
-

Panda napsal(a):

Zatím se mi zdá, že na linuxu to moc nefunguje. Tváří se to sice, že je všechno OK, ale „cesta k souboru“ ukazuje do složky app/temp/uploads-MFU (místo do app/uploadedData), která je ale prázdná. Zkusím to ještě o volné chvilce trochu projít a podívat se, co by mohlo způsobovat potíže.

Teď si to čtu znova. Na produkčním prostředí příklad soubory nikam nepřesouvá. (zůstanou v tempech a potom se smažou) Když zavoláš metodu move() nad HttpUploadedFile, tak by se ti to mělo přesunout tam, kam potřebuješ.

Vitek Jezek
hledá kolegy | 285
+
0
-

uz jsem to sem chtel napsat pred dlooouhou dobou, ale nejak jsem se k tomu nedostal O: )
Prvni vec je, jaky ten HTTP error nam to vraci – me osobne 403. Pak byl jen krucek se zeptat googlu a zjistit, ze to radsi neservirovat fastCGI. Takze hodit to na mod_php, zajistit dobre prava a dobre slozky a voilà: run Forrest, run! : )

Honzo, hodne bych zauvazoval, zda to nepredelat na http://swfupload.org/, vypada to o neco inteligentneji.

Honza Kuchař
Člen | 1662
+
0
-

uz jsem to sem chtel napsat pred dlooouhou dobou, ale nejak jsem se k tomu nedostal O: ) Prvni vec je, jaky ten HTTP error nam to vraci – me osobne 403. Pak byl jen krucek se zeptat googlu a zjistit, ze to radsi neservirovat fastCGI. Takze hodit to na mod_php, zajistit dobre prava a dobre slozky a voilà: run Forrest, run! : )

Toto by mělo fungovat už správně. Je to opraveno na dvou místech zároveň. :) Nette:
https://github.com/…e84a260119db a přímo v MFU v metodě handleUploads() . Pokud to pořád nefunguje pod FastCgi, tak mi prosím na mail pošli přístup na FTPko do nějaké složky toho serveru. Ale co jsem testoval na serveru Matúše Matuly, tak nebyl problém. Po opravě vše fungovalo normálně. (oprava je už jak distribuci Nette, tak v distribuci MFU)

Honzo, hodne bych zauvazoval, zda to nepredelat na http://swfupload.org/, vypada to o neco inteligentneji.

To co jsem řešil byly problémy Flash x Session. (které už jsou teď vyřešené; jak v Nette – zrušení verificationKey; tak v MFU – nepoužívá SESSION → velký problém napsat thread-safe storage → nakonec použito sqlite: 1, 2) Ale klidně to může komunikovat s něčím jiným, než s Uploadify. Plánuji udělat do MFU jaké drivery pro jednotlivé uploadovací mechanismy. Od standardního uploadu, přes Uploadify, až po Google Gears (drag&drop). Ale to je asi daleká budoucnost. To až zase budu mít někdy trochu času. (EDIT: … nebo mi někdo zaplatí)


Nicméně mě těší, že práce nepřišla nazmar. Byla to práce opravdu hnusná. Hlavně vyřešit ty chyby v Internet Exploreru.

Editoval honzakuchar (5. 3. 2010 23:22)

Honza Kuchař
Člen | 1662
+
0
-

P.S.: Nenapadá někoho nějaké lepší jméno pro MultipleFileUploader? Připadá mi to hrozně dlouhé.

Jan Endel
Člen | 1016
+
0
-

Jakože, mohl by si použít něco kratšího, třebas něco jako LoadUp – ovšem pak by člověk na první pohled nepoznal, o co se jedná.

22
Člen | 1478
+
0
-

Maximalne bych zkratil Multiple na Multi…file upload je tak zazity, ze jinej nazev by byl matouci..

pekelnik
Člen | 462
+
0
-

já bych dal Advanced Upload :)

Panda
Člen | 569
+
0
-

honzakuchar napsal(a):

Teď si to čtu znova. Na produkčním prostředí příklad soubory nikam nepřesouvá. (zůstanou v tempech a potom se smažou) Když zavoláš metodu move() nad HttpUploadedFile, tak by se ti to mělo přesunout tam, kam potřebuješ.

Testuji to na té ukázce, co je v SVNku. A vážně se to chová jinak mě na Windowsáckém lokálu, a jinak na produkčním serveru, který jede na gentoo.

//Doplnění: tak teď jsem si to taky přečetl znova a už chápu. Po odstranění podmínky to přesouvá, takže to, zdá se, funguje bez problémů.

Editoval Panda (6. 3. 2010 9:23)

Honza Kuchař
Člen | 1662
+
0
-

Neuvědomil jsem si, že to někoho zmate. Asi to odstraním. Mám to tam kvůli ukázce co mám na serveru, kde to nechci nikam přesouvat.

Blizzy
Člen | 149
+
0
-

Mám dotaz, okolo JavaScriptu a Flashe se moc nevyznám, ale:

Je nutné, aby to tlačítko Procházet bylo flashové? Nemohl by to být normální <button>, který pomocí JavaScriptu interaguje s Flashem? Flash a JavaScript přece mohou komunikovat, viz: http://www.permadi.com/…shjscommand/. Pokud by byl jako button, nevyčníval by a vypadal by jak ostatní tlačítka, dalo by se to nastylovat apod. Proč tohle není možné?

Honza Kuchař
Člen | 1662
+
0
-

Technicky to možné není. Je tam pokud vím nějaké omezení. (pokud se má otevřít dialog na vybrání souboru, musí být vyvolán kliknutím uživatele do objektu s flashem) Ale je v plánu udělat ten flash jakoby průhledný a pod ním, by byl nějaký div, který si už ostyluješ. (bude možná někdy)

Editoval honzakuchar (6. 3. 2010 22:51)

Mortaelth
Člen | 24
+
0
-

Nemohu se pripojit k SVN. Pres browser (opera) kdyz kliknu na odkaz svn, tak si mohu repozitar normalne prohlednout, ale kdyz si url zkopiruji a zkusim pouzit v TortoisSVN nebo v internim SVN klientovi Zend Studia, tak to po me chce prihlasovaci udaje. Je nekde neco potreba nastavit? delam neco spatne?

Matúš Matula
Člen | 257
+
0
-

Mortaelth napsal(a):

Nemohu se pripojit k SVN. Pres browser (opera) kdyz kliknu na odkaz svn, tak si mohu repozitar normalne prohlednout, ale kdyz si url zkopiruji a zkusim pouzit v TortoisSVN nebo v internim SVN klientovi Zend Studia, tak to po me chce prihlasovaci udaje. Je nekde neco potreba nastavit? delam neco spatne?

Skus dat ako meno ‚guest‘ a heslo nechaj prazdne

Mortaelth
Člen | 24
+
0
-

Matúš Matula napsal(a):

Mortaelth napsal(a):

Nemohu se pripojit k SVN. Pres browser (opera) kdyz kliknu na odkaz svn, tak si mohu repozitar normalne prohlednout, ale kdyz si url zkopiruji a zkusim pouzit v TortoisSVN nebo v internim SVN klientovi Zend Studia, tak to po me chce prihlasovaci udaje. Je nekde neco potreba nastavit? delam neco spatne?

Skus dat ako meno ‚guest‘ a heslo nechaj prazdne

To jsem zkousel jako prvni. Neuspesne. Nerikejte ze jsem jediny, po kom to chce heslo?

Honza Kuchař
Člen | 1662
+
0
-

Mortaelth napsal(a):

Matúš Matula napsal(a):

Mortaelth napsal(a):

Nemohu se pripojit k SVN. Pres browser (opera) kdyz kliknu na odkaz svn, tak si mohu repozitar normalne prohlednout, ale kdyz si url zkopiruji a zkusim pouzit v TortoisSVN nebo v internim SVN klientovi Zend Studia, tak to po me chce prihlasovaci udaje. Je nekde neco potreba nastavit? delam neco spatne?

Skus dat ako meno ‚guest‘ a heslo nechaj prazdne

To jsem zkousel jako prvni. Neuspesne. Nerikejte ze jsem jediny, po kom to chce heslo?

Heslo to chce po vsech. Je tam opravdu nastaveno:
jméno: guest
heslo: prázdné

Akorát to heslo je zakódováno v url. Takže se to ve většině prohlížečů zadá samo.

Editoval honzakuchar (15. 3. 2010 21:30)

Honza Kuchař
Člen | 1662
+
0
-

Shledáváte MFU dostatečně otestovaným na to, aby se dostal do fáze beta či release candidate. (RC ještě asi ne, ještě tam chci přidat možnost skinování)

Editoval honzakuchar (15. 3. 2010 21:32)

pekelnik
Člen | 462
+
0
-

Ještě jsem ho netestoval :) Používám vlastní řešení založené na Uploadify ještě jsem se nedokopal k nasazení rozšíření.

Zajímalo by mě jak je na tom situace ohledně tokenů pro autentizaci requestů z flashe.

Honza Kuchař
Člen | 1662
+
0
-

Tokeny se používájí jen k identifikaci front. (nikoli k ověřování; ale je to pár řádků navíc, takže si to můžeš klidně doimplementovat) Funguje to stejně jako v PHP. Uložím do tempů a potom po timeoutu mažu.

Honza Kuchař
Člen | 1662
+
0
-

Důrazně doporučuji updatovat na nejnovější revizi. V MFU se vyskytoval dost nepříjemný bug. MFU občas (cca. jednou za sto požadavků) vyhazoval výjimku o neexistující tabulce. V současné revizi je toto již opraveno je zapracováno opatření, aby se již takováto chyba neopakovala.

Dále byl do MFU přidán driver pro Dibi. (přiložené jsou dumpy mysql a postgre databáze)

Editoval honzakuchar (21. 3. 2010 23:19)

Honza Kuchař
Člen | 1662
+
0
-

Vzhledem k tomu, že už má MFU 3 drivery, zdokumentoval jsem tuto funkčnost i v dokumentaci.

Vyki
Člen | 388
+
0
-

Nevím proč, ale když uploaduju více jak 2 soubory, tak upload sice proběhne, ale odezvou je hláška, že 2 soubory byly nahrány. Chová se to jako kdyby se to u dvou souborů ořízlo. Ani v upload složce najdu vždy jenom 2. Zkoušel jsem i mysql driver, ale na produkčním serveru pořád nic. Prosím o radu. Díky EDIT: Ještě doplňuji, že se jedná o server, kde běží PHP 5.3.2, a používám příklad uvedený na SVN. EDIT: Dále jsem zjistil, že na dvou souborech končí Firefox. Na 4 až 5ti souborech končí i IE8. Vyberu 8 souborů velkých cca 800kB. Maximální velikost POST požadavku mám 30MB a maximální velikost odesílaných souborů také 30MB. MFU $Rev: 49 $ released on $Date: 2010–03–21 22:16:14 +0100 (Ne, 21 III 2010) $

Editoval Vyki (23. 3. 2010 13:30)

Vyki
Člen | 388
+
0
-

Tak další poznatek. Když dám simUploadFiles = 1, tak to pomůže v IE8, ale ve Firefoxu se to změní jedině tak, že se sice z vizuálního hlediska proběhne proces uploadu, ale ve skutečnosti se nahraje na server pouze 1 soubor, předtím byly alespoň 2 :o) A stejně jako ve Firefoxu to je i v Chrome.

Honza Kuchař
Člen | 1662
+
0
-

Zajímavé, mně se tu nahrají všechny jak mají.

Editoval honzakuchar (23. 3. 2010 15:48)