Upload statusbar
14 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Ahoj, jak vlastně funguje upload statusbar? Asi víte co myslím - člověk nahrává nějaký soubor na web a během nahrávání se mu zobrazuje, kolik ještě zbývá uploadnout, rychlost atd... Našel jsem několik kompletních kódů, ale většinou v nich byl takovej bordel, že jsem je naprosto nechápal. Tak se ptám tady, jak to vlastně funguje... Asi to bude nějak spojený PHP s JavaScriptem (AJAXem), ale naprosto netušim jak a jestli to vůbec jde bez zásahů na serveru (žádná nová extenze pro PHP, žádná úprava php.ini...)?
-
Myslíš asi progressbar - a www.google.com to určitě najde.
-
=MyFlower= Myslim, ze v tom jen slozitosti hledas a pritom tam nejsou.. Pres AJAX si stahnes ze serveru informaci, kolik dat uz bylo nahráno, a informaci, jak nahrávaný soubor bude ve výsledku velký. A z techto informaci uz treba jen vypises % hotova. Pripadne muzes zkusit odhadnou cas, pokud (napr.) si v JS ulozis cas zacatku uploadu a budes pocitat vteriny (nebo stahovat navic time() ze serveru..)... Uprava ini mi prijde nemyslitelna - co bys upravoval? Jedine snad takove veci, ktere muzes chtit zmenit pro jakykoliv jiny upload (napr upload_max_filesize ..) Ale mozna ze existuji i nejaka PHP rozsireni, ktere tyto akce zjednodusuji (treba rovnou vrati %, ktera uz jsou nahrána atd..) - ale tady fakt netusim..
-
Lama: díky, progressbar vrací mnohem hezčí výsledky :-) Freeze: super, teoreticky jsem to zvládnul, už to jenom provést prakticky :-) Neviděl čirou náhodou někdo tutoriál? Já když narazim na nějakej kompletní skript, tak je to většinou nějakej velkej "eye-candy" project, kterej má stovky řádků kódu, kterej je pro mě zbytečnej, případně vyžaduje doinstalovat moduly PHP a nebo to neni jenom PHP+Ajax (hlavně CGI)... Moc by mi pomohl nějakej tutoriál, případně nějakej malej hotovej projekt =D Snad toho nechci moc, předem moc dík!
-
Malý, hotový... http://www.webappers.com/2007/07/31/webappers-simple-ajax-progress-bar-with-css/ Ale řekl bych, že je to snaha neúměrná výsledku. :-) Další zdroje http://www.google.com/search?num=20&hl=cs&q=javascript+progressbar&btnG=Hledat&lr=
-
Asi tě zklamu. Dneska jsem se zájmem zkoušel najít jak by se to dalo provést čistě pomocí PHP + Ajax, ale zjistil jsem, že bohužel tato technologie, respektive objekt XMLHttpRequest, nedovoluje zjistit počet odeslaných dat. Zjišťování pomocí jiného PHP skriptu nepřipadá v úvahu, protože se soubor nejdříve uploaduje do tempu pod nějakým hashem. Co jsem zatím viděl funkční byl upload pomocí flash objektu, patrně je action script mocnější než javascript ;) Škoda, že vývojáři nedali do XMLHttpRequestu počet odeslaných přes socket, to by potom byla úplná hračka... Každopádně kdyby někdo přišel na něco jiného tak se pochlubte, sám jsem zvědavý.
-
Lama: Ráno na to kouknu, nechám si to jako překvápko :-) Vojta: Bohužel k podobným výsledkům jsem se dopídil taky, ale prý existuje od PHP 5.2.x nějaký "file upload hooks", se kterejma se dá pracovat, ale nikde jsem toho nenašel moc kloudnýho...
-
Lama: Neodolal jsem a kouknul se na to.. Bohužel tohle už jsem viděl taky, je to jeden z mnoha a musim uznat, že vypadá moc hezky, ale není to upload statusbar - sice jsem ho někde viděl nasazený, ale zase na tom serveru běžela nějaká modifikace PHP, což mi neni moc platný. Ale i tak moc díky za snahu =D
-
=Vojta= Jenomze tobe nejde o to, abys zjistoval v xmlhttprequestu odeslana data. Ty se pres ajax budes dotazovat na server, kolik uz jich dorazilo (budes merit filesize v tmp).. (Jedine, nad cim ted uvazuju, jak zjistit nazev tmp uz v prubehu uploadu..) "pomocí flash objektu" - nikdo nerekl, ze by to neslo.. Jen JS povazuji za standardni soucast prohlizecu, zatimco AS ani tak ne:)
-
Tak jsem zkusil i hledat.. nejzajimaveji vypada asi toto: http://blog.joshuaeichorn.com/archives/2006/03/14/php-ajax-file-upload-progress-meter-updates/ zadne extensions to nevyzaduje (pouze k zobrazeni rychlosti ..)
-
Freeze: dík, ale tohle je fakt naschvál - mam stáhnout nějaký "PAFUPMU" a jediná stránka, na který jsem to našel mi vypisuje DISABLED :-)
-
Teď jsem bez nějakýho většího rozmyslu zkoušel zjišťovat velikost toho dočasnýho souboru. Problém je hned ve dvou věcech - a) trvá skriptu dlouho, než mi řekne, název toho dočasnýho souboru - nevim proč, ale první přemejší tak 5 sekund a teprve potom mi sdělí název, ale hlavně b) mi to píše pořád stejnou velikost souboru. Tzn. soubor se zapíše a až do smazání má pořád stejnou velikost, což už nechápu vůbec.
-
=MyFlower= Proc zjistuje nazev tak dlouho fakt netusim.. Ale problem s velikoti bude v tom, ze vysledek filesize() se cachuje .. ( musis pouzivat clearstatcache()..
-
Tak jsem to zkoušel s clearstatcache() a vypadá to pořád stejně... Asi to na pár dnů nechám a pak se k tomu vrátim, to mi dost často pomáhá. Všem moc dík!