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

  1. 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);
        }
    }
});
  1. 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.

 

#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?

 

Zápatí