Fineuploader – ako prepojit s presenterom

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

Ahojte, snazim sa rozbehat fineuploader s nette, ale potreboval by som pomoc niekoho skusenejsieho. Snazil som sa opierat aj o tento navod od Martina Zlamala (http://zlml.cz/…-uploaderu-2), ale ani ten mi velmi nepomohol. Moj problem bude zrejme v nastaveni „endpointu“.

Vyzera to u mna nejak takto:

var manualUploader = new qq.FineUploader({
     element: document.getElementById('fine-uploader-manual-trigger'),
    template: 'qq-template-manual-trigger',
    request: {
        endpoint: 'uploadFiles!'
    },
    thumbnails: {
        placeholders: {
            waitingPath: '../../../www/images/placeholders/waiting-generic.png',
            notAvailablePath: '../../../www/images/placeholders/not_available-generic.png'
        }
    },
    autoUpload: false,
    debug: true
});
qq(document.getElementById("trigger-upload")).attach("click", function() {
    manualUploader.uploadStoredFiles();
});

V prezentery mam nejaku takuto metodu:

public function handleUploadFiles() {
    $uploader = new \UploadHandler();
    $uploader->allowedExtensions = array("jpeg", "jpg", "png", "gif");
    $result = $uploader->handleUpload(__DIR__ . '/../../www/uploads');
    $this->sendResponse(new Nette\Application\Responses\JsonResponse($result));
}

Problem je, ze po kliknuti na Upload suborov dostavam v console 2 errory:

"NetworkError: 500 Internal Server Error - http://localhost/bakalarska_praca/sk/application/upload/uploadFiles!"
[Fine Uploader 5.6.0] Error when attempting to parse xhr response text (JSON.parse: unexpected character at line 1 column 1 of the JSON data)
...,!0)},reset:function(){e=[],f={},g={},i={}},setStatus:function(b,c){var d=e[b].s...

Vedel by mi niekto poradit ako spravne prepojit ten endpoint s handle metodou v prezentery?

Editoval drick (3. 4. 2016 10:55)

mrtnzlml
Člen | 140
+
0
-

Docela určitě nemám v tom článku udělaný ten endpoint takto. Podívej se, jakou ti to dělá adresu: http://localhost/bakalarska_praca/sk/application/upload/uploadFiles!. Nechceš tam mít spíš nějaké Latte makro? Případně pokud to máš v externím JS, tak si tu adresu předej pomocí nějakého data atributu.

drick
Člen | 61
+
0
-

mrtnzlml napsal(a):

Docela určitě nemám v tom článku udělaný ten endpoint takto. Podívej se, jakou ti to dělá adresu: http://localhost/bakalarska_praca/sk/application/upload/uploadFiles!. Nechceš tam mít spíš nějaké Latte makro? Případně pokud to máš v externím JS, tak si tu adresu předej pomocí nějakého data atributu.

Nie, ten skript mam priamo v default.latte. Viem, ze nemas tu adresu takto spravenu, to uz bol len taky moj zufaly posledny pokus. Skusal som to presne tak ako to mas ty – teda ten endpoint nastavit nejak files?do=uploadFiles ale ani to mi nefungovalo. Neviem ako spravit ten odkaz, aby mi to handle operacia spracovala.

David Matějka
Moderator | 6445
+
0
-

nastavit nejak files?do=uploadFiles ale ani to mi nefungovalo

a koukal ses do log slozky, jestli tam je chyba?

drick
Člen | 61
+
0
-

David Matějka napsal(a):

nastavit nejak files?do=uploadFiles ale ani to mi nefungovalo

a koukal ses do log slozky, jestli tam je chyba?

Priznam sa, ze to ma nenapadlo. Mam tam chybu:

Fatal Error: Class 'UploadHandler' not found in  ...

Co to ale znamena?

mrtnzlml
Člen | 140
+
+1
-

To vypadá, že to ten odkaz funguje správně, ale v té handle metodě používáš třídu \UploadHandler, která však neexistuje. Tato třída je popsána v předposledním odstavci, konkrétně je tam trošku starší odkaz na https://github.com/…/handler.php… :)

drick
Člen | 61
+
+1
-

mrtnzlml napsal(a):

To vypadá, že to ten odkaz funguje správně, ale v té handle metodě používáš třídu \UploadHandler, která však neexistuje. Tato třída je popsána v předposledním odstavci, konkrétně je tam trošku starší odkaz na https://github.com/…/handler.php… :)

Super! Mal si pravdu, chyba bola v tom, ze som nemal spravne nacitany \UploadHandler. Dakujem velmi pekne!