upload souborů pomocí blueimp jQuery File Upload pluginu
- vanacom
- Člen | 1
Čau, chtěl bych pro nahrávání souborů (obrázků) využívat plugin jquery File Upload ovšem nedaří se mi jej korektně propojit s Nette.
Všechny soubory mám nakopírované v podadresáři v místním kořenovém adresáři webu (www/) kromě souborů pro zpracování na straně serveru. Soubor UploadHandler.php, který obstarává samotné nahrávání souborů, se nachází v modelu aplikace. Dále v presenteru, který se stará o zobrazení formuláře, mám metodu pro zpracování signálu, která vypadá takto:
public function handleUpload()
{
$upload_handler = new UploadHandler();
$this->terminate();
}
V šabloně, která vykresluje formulář pro upload, se ještě nachází kód pro inicializaci celého pluginu:
<script>
$('#fileupload').fileupload({
url: {plink upload!},
maxFileSize: 5000000,
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
});
</script>
Nejprve plugin nefungoval vůbec kvůli chybě: SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data, což způsobovalo pravděpodobně to, že do JSON dat se dostávalo HTML, proto jsem do metody handleUpload() přidal
$this->terminate();
Po této modifikaci se úspěšně rozběhlo nahrávání souborů na server.
Bohužel mi tyto soubory nejdou mazat.
Zkoušel jsem debugovat pomoci Firebugu a FireLoggeru a vypadá to, že se
požadavek DELETE na smazání souboru vytvoří, ale do metody
handleUpload() se nikdy nedostane. Mám teorii, že je to
pravděpodobně špatnými vygenerovanými daty JSON, ve který je chybně
uveden požadavek DELETE a nebo tam není vůbec. Ale tyto data se mi nedaří
získat, abych si tuto teorii ověřil. Možná to také způsobuje
přidaný příkaz
$this->terminate();
Má někdo s tímto zkušenosti? Popřípadě neznáte nějaký podobný AJAX plugin pro nahrávání souborů, který s Nette bezproblému funguje? Uvažoval jsem nad Uploadify, ale co jsem četl tak taky nefunguje zcela bez problému, ale zatím jsem jej nezkoušel, takže to na 100% říci nemohu.
Děkuji předem za jakoukoliv reakci.