Diskuse k MultiFileUpload
#1 před 10 měsíci
- echo
- Člen

- Registrovaný: 28. 9. 2010
- Příspěvky: 38
Diskuse k MultiFileUpload
Diskuse ke komponentě MultiFileUpload.
Editoval echo (13. 7. 2011 18:56)
#2 před 9 měsíci
- pidiclovek
- Člen

- Registrovaný: 24. 6. 2011
- Příspěvky: 80
Re: Diskuse k MultiFileUpload
Ahoj, už se asi dvě hodiny trápím s tímto addonem a jeho použitím v modulech. Nedaří se mi vůbec nahodit uploader, ikdyž všechny cesty jsou správné ve finálním zdrojáku – např k flashi či skriptům, uploader se nenačte a jen vyhodí hlášku There is no support for any of these: html5,flash,silverlight.
Nasimulovat lze lehce, stačí vytvořit např AdminModule, do kterého přesunout HomepagePresenter s šablonou, upravit extends na \BasePresenter a do bootstrapu přidat routu
$router[] = $adminRouter = new RouteList('Admin');
$adminRouter[] = new Route('admin/<presenter>/<action>', 'Homepage:default');
už jsem vyzkoušel snad vše, zdrojáky prošel od shora dolů… prosím o radu
#3 před 9 měsíci
- natrim
- Člen

- Registrovaný: 11. 12. 2009
- Příspěvky: 66
Re: Diskuse k MultiFileUpload
podle toho co píšeš máš v runtimech jen html5,flash a silverlight
a tvůj prohlížeč nepodporuje ani jedno
<?php
// Runtimes - possible ('gears', 'flash', 'silverlight', 'browserplus', 'html5')
$uploader->runtimes = array('flash');
?>
HmFm?
#4 před 9 měsíci
- pidiclovek
- Člen

- Registrovaný: 24. 6. 2011
- Příspěvky: 80
Re: Diskuse k MultiFileUpload
Díky za odpověď, ale tím to určitě není, můj prohlížeč podporuje všechny tři uvedené, jinak by ani nemohlo fungovat demo , kdy není presenter v žádném modulu. Stačí jej přesunout i s templatou do nějakého modulu a přidat routu viz výše a jste tam, kte jsem já. Kde je jen zakopanej ten pes :)
Zkoušel jsem si i hrát s konstantou BASE_PATH tak, aby všechny cesty ve spouštěcím scriptu plupload seděli, nicméně neuspěl jsem.
#5 před 9 měsíci
- echo
- Člen

- Registrovaný: 28. 9. 2010
- Příspěvky: 38
Re: Diskuse k MultiFileUpload
Ukázka ti funguje? Pokud ano, hoď sem skeleton, mrknu se.
#6 před 9 měsíci
- echo
- Člen

- Registrovaný: 28. 9. 2010
- Příspěvky: 38
Re: Diskuse k MultiFileUpload
Tak mě napadá, zalinkoval jsi i scripty. Myslím tím componentu head.
#7 před 9 měsíci
- pidiclovek
- Člen

- Registrovaný: 24. 6. 2011
- Příspěvky: 80
Re: Diskuse k MultiFileUpload
@echo Ahoj, díky za reakci, už si nevím rady, připadám si jako trouba, bude to nějaká pitomost… Ukázka mi funguje bez problémů, tady je link na skeleton s použitím modulu, je to jen upravená původní ukázka. Head componenta se normálně načítá, kontroloval jsem i cesty k těm skriptům a jsou vpořádku.
Mockrát díky za pomoc! :)
#8 před 9 měsíci
- echo
- Člen

- Registrovaný: 28. 9. 2010
- Příspěvky: 38
Re: Diskuse k MultiFileUpload
Nakonec jsou problémem přece jen cesty. Viz. /mfu/www/admin/temp/jsloader-148eb4fdd989.js?1313699074". /admin/ je tam evidentně navíc. Tady bude asi nějaký problémek u cssLoaderu, neboť cesta jemu předaná je správná, nebo jsem tu chybu způsobil já, když jsem jej upravoval. Každopádně navrhuji vytvořit Head mimo modul a upravit BASE_PATH, pak by to mělo šlapat.
#9 před 9 měsíci
- echo
- Člen

- Registrovaný: 28. 9. 2010
- Příspěvky: 38
Re: Diskuse k MultiFileUpload
Tak heureka.
Problém nebyly cesty k pluploadu, ale cesty k jquery :-). Má metoda
BASE_PATH co je v ukázce není zrovna nejšťastnější a tím pádem všude,
kde byla použita, se BASE_PATH vypisovala špatně (viz. předchozí post).
Stačí to nějak kulantně ošetřit v \BasePresenteru a je to.
PS: Doporučuji FireBug, je to nástroj k nezaplacení.
#10 před 9 měsíci
- pidiclovek
- Člen

- Registrovaný: 24. 6. 2011
- Příspěvky: 80
Re: Diskuse k MultiFileUpload
Díky za pomoc! Firebug používám, ale ne uplně na všechno, což asi změním :) Teď už to podle výše uvedeného snad dokopu do zdárného konce, díky :)
#11 před 9 měsíci
- pidiclovek
- Člen

- Registrovaný: 24. 6. 2011
- Příspěvky: 80
Re: Diskuse k MultiFileUpload
Tak jsem tu opět :(… Mým problémem je callbacková fce, ve které chci ukládat soubory, respektive jejich názvy do db. V tom by neměl být problém, ale!
Funkce callbacku, a tedy i upload souboru jsou úspěšné jen tehdy, pokud
se o zápis nepokusím, což je opravdu divné, jedinné co mě napadá je
nějaký timeout uploaderu pro callbackovou fci…
Protože s tímto kódem:
<?php
$fileName = $class->getSanitizedName();
$pi = pathinfo($fileName);
$file = $pi['filename'];
$ext = $pi['extension'];
$path = UPLOAD_DIR . '/' . $this->lang . "_" . $this->uploadFolder . '/'
. Strings::webalize($this->uploadObject->title) . "/";
$additionalToken = 0;
if (file_exists($path . $class->getSanitizedName()))
do{
$additionalToken++;
}while (file_exists($path . $file.$additionalToken. ".".$ext));
if ($additionalToken == 0)
$finalFileName = $class->getSanitizedName();
else
$finalFileName = $file . $additionalToken . "." . $ext;
$class->move($path . $finalFileName);
//$this->models->links->savePicture($this->uploadObject->id, $finalFileName, $this->lang);
//$this->models->links->hasPictures($this->uploadObject->id, $this->lang);
?>
proběhne upload úspěšně, zatímco když odkomentuji poslední dva řádky, což je přes model loader uložení do db, upload spadne s hláškou IO error.Error #2032. Obě dvě metody pro uložení do db jsou vpořádku, při zavolání odjinud fungují tak jak mají. V čem může být problém?
Kód továrničky na mfu je stejný jako v demu. Mohl bych si ce přidat pod uploader tlačítko pro uložení do db, ale to mi přijde uživatelsky opravdu nevhodné, mohlo by se na to zapomínat…
V kódu až do metody move také problém není, bez něj se to chová stejně :(
#12 před 9 měsíci
- pidiclovek
- Člen

- Registrovaný: 24. 6. 2011
- Příspěvky: 80
Re: Diskuse k MultiFileUpload
Tak je na místě omluva, příspěvek výše můžete klidně smazat, ať to nikoho nemate a případně neodradí od této skvělé komponenty, za kterou tímto děkuji :)
chyba byla v špatně zapsaném mkdir, zapomněl jsem na parametr rekurze. Možný poznatek pro ostatní:
Pokud uděláte v callbacku chybu, neozve se laděnka, ale projeví
se to právě errorem IO error.Error #2032 , snad to
alespoň někomu pomůže :)
#13 před 9 měsíci
- echo
- Člen

- Registrovaný: 28. 9. 2010
- Příspěvky: 38
Re: Diskuse k MultiFileUpload
Pro ověřování funkčnosti callbacků je dobré nastavit runtime na html5 a ověřovat si průběh v konzoli firebugu. Až je vše odladěné stačí přehodit runtimes apod. Tady doporučuji flash, neboť jak se zdá html5 má problém s většími soubory (50MB+) neprošlo, resp. nezačalo se ani uploadovat. Flash touto vadou netrpí, testoval jsem na 350MB souborech.
#14 před 9 měsíci
- Honza Kuchař
- Moderator

- Registrovaný: 12. 8. 2007
- Příspěvky: 1588
Re: Diskuse k MultiFileUpload
Žádám autora tohoto doplňku o přesunutí komponenty do sekce formulářů na stránce doplňků a nějakém jednoznačném oddělení od původní komponenty tedy MultipleFileUploaderu. (i mě samotného to zmátlo a divil jsem se, kdo že mi to přepsal doplněk) Nebo je to parazitování, na již zaběhnutém produktu? Pánové vzpamatujte se, když někdo krade kód, chápu to, ale jména snad krást nebudeme, ne?
#15 před 8 měsíci
- Jack06
- Člen

- Registrovaný: 13. 2. 2010
- Příspěvky: 117
Re: Diskuse k MultiFileUpload
Nu nevím, zda to připadá divné jenom mě, ale trochu nechápu konstrukce.
složka mfu je v:
app/mfu - ok to bych si upravil jako app/components/mfu
Nicméně v inicializaci komponent odkazuješ na:
BASE_PATH . '/mfu' - tedy do složky root/mfu, jenomže ve složce rootu
bývá: app, libs, www, temp, uploads
Tak jsem jen slepej, nebo mi to nesedí. Není náhodou z venku zákaz vstupu do app?? Čiže pak je blbost ta inicializace složek.
Poprosil bych tedy o objasnění a popřípadě uvedení proč to má fungovat a kde se správně zadefinuje složka uploads
#16 před 8 měsíci
- 22
- Nette guru

- Registrovaný: 18. 1. 2010
- Příspěvky: 1424
Re: Diskuse k MultiFileUpload
asi bych napřed prošel http://cs.metrostate.edu/…h01Notes.htm
#17 před 8 měsíci
- Jack06
- Člen

- Registrovaný: 13. 2. 2010
- Příspěvky: 117
Re: Diskuse k MultiFileUpload
22 napsal(a):
asi bych napřed prošel http://cs.metrostate.edu/…h01Notes.htm
Nu to číst nepotřebuju. Prošel jsem si už ty dvě třídy takže už v pohodě.
#18 před 8 měsíci
- zopper
- Nový člen

- Registrovaný: 26. 8. 2010
- Příspěvky: 7
Re: Diskuse k MultiFileUpload
Jack06 napsal(a):
Nicméně v inicializaci komponent odkazuješ na:
BASE_PATH . '/mfu' - tedy do složky root/mfu, jenomže ve složce rootu bývá: app, libs, www, temp, uploads
BASE_PATH v tomto případě má obsahovat cestu ke stejnému adresáři, jako WWW_DIR, akorát z pohledu serveru a nikoliv klienta. Tak to aspoň mě funguje.
Zato řeším, jak navázat invalidaci snippetů, nebo aspoň jakýkoliv js callback po dokončení nahrávání (úspěšném, ale i neúspěšném).
EDIT: koukám, že reaguju pozdě, nevadí :D
EDIT2: callback aktuálně řeším úpravou jquery.ui.plupload.js, ale nevím, jestli to je čisté řešení… (co potřebuju – na stránce s uploadem je i seznam souborů, který se musí aktualizovat – invaliduju snippety)
Editoval zopper (7. 9. 2011 12:43)
#19 před 8 měsíci
- Jack06
- Člen

- Registrovaný: 13. 2. 2010
- Příspěvky: 117
Re: Diskuse k MultiFileUpload
Taky to momentálně chci řešit, tak pokud někdo dosáhnete úspěšného
výsledku nebylo by od věci to sem hodi.
Krom tohoto mám ještě jeden problém – při uploadu jsem na určité
adrese:
http://www.expample.com/<presenter>/<action>/<id>
při zobrazení upload formuláře id mám a dokonce se mi i hlásí v konzoli
a správně. Nicméně pokud odešlu upload, tak v parametru id mám prázdno a
nedaří se mi to záplatovat.
Po postu vypadá $this->presenter->getParam() takto:
array(3) {
["action"]=>
string(7) "content"
["id"]=>
NULL
["do"]=>
string(15) "photoAdd-Upload"
}
Díky
EDIT: Nu tak id parametr asi vyřeším přes multipart_params.
EDIT2: jen ještě taková technická, to k tomu budu muset přistupovat přes hnusný $_REQUEST?
Editoval Jack06 (8. 9. 2011 15:58)
#20 před 7 měsíci
- echo
- Člen

- Registrovaný: 28. 9. 2010
- Příspěvky: 38
Re: Diskuse k MultiFileUpload
@Honza Kuchař
Omlouvám se za pozdní odpověď.
Přesouvat pod formuláře je značně nelogické, neboť komponenta nemá s Nette\Forms nic společného.
Přejmenovat by se to mohlo, ovšem osobně mě nic výstižnějšího nenapadá, navíc je komponenta popsána a je jasně uvedeno, že se jedná o plupload.
O parazitování se nejedná, komponentu jsem napsal s ohledem na nefunkčnost tvého pluginu pro aktuální verzi Nette. Kvůli časové tísni pro mě bylo výhodnější napsat si komponentu vlastní – a tu pak sdílet, než-li studovat a upravovat tvou.
Každopádně jsem zvědav na pokračování vývoje MultipleFileUploaderu. Hodně zdaru.
#21 před 5 měsíci
- saimons
- Člen

- Registrovaný: 24. 1. 2010
- Příspěvky: 136
Re: Diskuse k MultiFileUpload
Jakym zpusobem lze po dokonceni nahravani invalidovat snippet pod
uploadovacim oknem?
Pokud jsem na tuto stranku nahral doplnek nette jquery ajax tak mi
nefunguje mfu.
#22 před 5 měsíci
- echo
- Člen

- Registrovaný: 28. 9. 2010
- Příspěvky: 38
Re: Diskuse k MultiFileUpload
saimons napsal(a):
Jakym zpusobem lze po dokonceni nahravani invalidovat snippet pod uploadovacim oknem?
Pokud jsem na tuto stranku nahral doplnek nette jquery ajax tak mi nefunguje mfu.
Nette jquery ajax by měl fungovat, zkus přehodit pořadí načítání scriptů na: jquery, jquery_ui, jquery_nette, plupload
- Upravit nastavení plupload, aby posílal „ajaxový“ header a volal funkci pro invalidaci snippetu $.nette.success
// Setup gears version
$("#uploader{!$token}").plupload({
// General settings
runtimes : {$runtimes},
url : {link Upload!},
max_file_size : {$maxFileSize},
chunk_size : {$maxChunkSize},
flash_swf_url : {$flashUrl},
silverlight_xap_url : {$silverlightUrl},
headers: {'X-Requested-With': 'XMLHttpRequest'},
init : {
// Called when a file has finished uploading
FileUploaded: function(up, file, info) {
var json = jQuery.parseJSON(info.response);
$.nette.success(json);
}
}
});
- Zakomentovat řádek 269 v souboru Uploader.php
//die('{"jsonrpc" : "2.0", "result" : null, "id" : "id"}');
#23 před 4 měsíci
- Droid
- Člen

- Registrovaný: 21. 2. 2011
- Příspěvky: 82
Re: Diskuse k MultiFileUpload
Ahoj, nějaké řešení problému s cestami? Pořád ne a ne to rozběhat.
Twitter: http://twitter.com/JanGnip
#24 před měsícem
- olkins
- Člen

- Registrovaný: 7. 4. 2012
- Příspěvky: 32
Re: Diskuse k MultiFileUpload
Ahoj, nevite nekdo, jestli by uploader slo nejak spustit i v IE?