Upload – soubor má 0kB při přesažení upload_max_filesize

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

Zdravím!

Na serveru máme nastavené omezení upload_max_filesize na 2MB a potřebuji ukázat user-friendly hlášku, když je povolená velikost překročena. Níže uvedený kód to nevyřešil:

<?php
$form->addUpload('avatar', 'Profilová fotografie')
     ->addCondition(Form::FILLED)
     ->addRule(Form::IMAGE, 'Je vyžadován obrázek ve formátu JPG, GIF nebo PNG.')
     ->addRule(Form::MAX_FILE_SIZE, 'Obrázek je moc velký.', $this->maxUpload);
?>

V případě, že je kvóta překročena, k žádné chybě nedojde, z nějakého důvodu není obrázek považován jako FILLED, a já dostanu takový array:

Nette\Http\FileUpload Object ( [name:Nette\Http\FileUpload:private] => King2_TheReturn_final2560x1440.jpg [type:Nette\Http\FileUpload:private] => [size:Nette\Http\FileUpload:private] => 0 [tmpName:Nette\Http\FileUpload:private] => [error:Nette\Http\FileUpload:private] => 1 )

Jde to spolehlivě zkontrolovat pomocí addRule, nebo musím vytvořit vlastní pravidla / ohlídat si to v presenteru?

Nette 2.0.13, nginx

jiri.pudil
Nette Blogger | 1032
+
0
-

Musíš si vytvořit vlastní pravidla / ohlídat si to v presenteru. Kontroluj isOk() a pokud vrátí FALSE, konfrontuj getError()chybovými kódy