Form::IMAGE nefunguje s ajaxem
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- esorimer
- Člen | 114
Ahoj,
pokud pouzivam pro odeslani Ajax, tak můžu odeslat jakýkoliv soubor a spustí
se mi formSubmitted() s tím, že ‚image‘ obsahuje objekt
Nette\Http\FileUpload s ‚error‘ = 4.
Pokud neposilam data pres Ajax, vrati mi ne-obrazek chybu, jak má, a obrázek objekt Nette\Http\FileUpload s ‚error‘ = 0 (čili bez ajaxu se to chová vždy jak má).
<?php
function createComponentMujForm() {
$form = new Form();
$form->addUpload('image','Hlavní obrázek:')->addCondition(Form::FILLED)->addRule(Form::IMAGE);
$form->addSubmit('Odeslat');
$form->onSuccess[] = callback($this, 'formSubmitted');
// pokud toto odstranim, chova se to jak ma
$form->getElementPrototype()->addAttributes(array('class' => 'ajax'));
}
?>
{snippet mujForm}
{control mujForm}
{/snippet}
Problém je tedy asi v Ajaxu, Ajax neumí poslat obrázek? Dá se s tím něco dělat?
- Marek Šneberger
- Člen | 130
„Klasickým“ ajaxem se soubory nedají / nedoporučují nahrávat. Nicméně existují řešení, jako například js knihovna Plupload – tu jsem osobně integroval do Nette, a fungovalo to v pohodě :)