addUpload, problém s omezením max file size

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

Pokud aplikuji tyhle pravidla tak by mi mělo nette javascriptem zahlásit že soubor je větší nebo se pletu?

<?php
$form->addUpload("file","Obrázek")
		->setRequired("Musíte vložit obrázek")
		    ->addRule(Form::IMAGE,"Obrázky jsou povolené pouze ve formátech JPG,PNG a GIF.")
			->addRule(Form::MAX_FILE_SIZE,"Maximální velikost obrázku může být 3MB",3145728);
?>

Když provedu nahrání tak se mi v případě že obrázek splňuje velikost nahraje úspěšně ale v případě že nesplňuje tak to nic nezahlásí pouze se to neodešle. Pokud ale nevyberu obrázek tak mi nette hlásí že ho musím vybrat. Kde může být problém?

Ot@s
Backer | 476
+
0
-

Marsme napsal(a):

Pokud aplikuji tyhle pravidla tak by mi mělo nette javascriptem zahlásit že soubor je větší nebo se pletu?

Na klientovi to velikost souboru nevaliduje (jak to v prohlížeči zjistit pomocí JS?), ale absenci povinné položky ano.

Marsme
Člen | 75
+
0
-

Takže to je třeba zvalidovat a hlášku vyhodit na onValidate[] ?

Ot@s
Backer | 476
+
0
-

Marsme napsal(a):
.. ale v případě že nesplňuje tak to nic nezahlásí pouze se to neodešle.

Jak vykresluješ formulář? Pokud ručně, tak je třeba do šablony přidat i render chyb:

<ul class="errors" n:if="$form->hasErrors()">
        <li n:foreach="$form->errors as $error">{$error}</li>
</ul>

Pokud necháváš generovat formulář „automaticky“, tak hláška o velikosti souboru by se měla zobrazit. Ještě můžeš zkontrolvat velikost cfg direktiv upload_max_filesize a post_max_size. Nevím jak validátor v Nette reaguje na překročený limit (php takový soubor na server nenahraje).

22
Člen | 1478
+
0
-

…aneb proč to dělat jednoduše, když to jde složitě. Úplně stačí:

	...
	{$form->render('errors')}
	...
MartyIX
Člen | 217
+
0
-

Ot@s napsal(a):

Marsme napsal(a):

Pokud aplikuji tyhle pravidla tak by mi mělo nette javascriptem zahlásit že soubor je větší nebo se pletu?

Na klientovi to velikost souboru nevaliduje (jak to v prohlížeči zjistit pomocí JS?), ale absenci povinné položky ano.

https://github.com/…tte/pull/773 – tady jiz ano

Editoval MartyIX (10. 9. 2012 15:42)