Validační pravidla pro upload souboru

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

Zdravím, nevím jeslti něco dělám špatně nebo ne, ale nefungují mi validační pravidla pro „file“

Mám kod:

$form->addUpload('foto', 'Fotografie restaurace')
     ->addRule(UI\Form::MAX_FILE_SIZE, 'Maximální velikost souboru je 2MB.', '2000')
     ->addRule(UI\Form::IMAGE, 'Formát fotografie může být pouze JPEG, PNG nebo GIF.');

Nahrávám obrázek o velikosti 2,4MB a vypisuje mi to pouze chybu „Formát fotografie může být pouze JPEG, PNG nebo GIF.“
Tuto hlášku ale hlásí ikdyž nahrávám PNG, JPG.

Dělám něco špatně? Díky za reakce

Casper
Člen | 253
+
0
-

Zkontroluj jaký MIME_TYPE ti prohlížeč posílá v případě daných souborů.

iwory
Člen | 147
+
0
-

Casper napsal(a):

Zkontroluj jaký MIME_TYPE ti prohlížeč posílá v případě daných souborů.

dump $values vyhodi:

Nette\ArrayHash(4) ▼ {
   foto => Nette\Http\FileUpload(5) ▼ {
      name private => "IMG_0588_sss.jpg" (16)
      type private => NULL
      size private => 0
      tmpName private => ""
      error private => 1
   }
   upload_photo => ""
   pubID => "29" (2)
   pubUrl => "krejci-bohumil" (14)
}

Když posílám menší – cca 400kb tak mam dump

ette\ArrayHash(4) ▼ {
   foto => Nette\Http\FileUpload(5) ▼ {
      name private => "IMG_0588_sss kopie.jpg" (22)
      type private => NULL
      size private => 272966
      tmpName private => "/var/www/virtual/lsecc.cz/phptmp/php2nCsjB" (56)
      error private => 0
   }
   upload_photo => ""
   pubID => "29" (2)
   pubUrl => "krejci-bohumiil" (15)
}

Editoval iwory (4. 11. 2013 13:11)

David Matějka
Moderator | 6445
+
0
-

mas tam error 1, coz je

Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.

iwory
Člen | 147
+
0
-

matej21 napsal(a):

mas tam error 1, coz je

Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.

Jééé, tak to se omlouvám za zbytečné vlákno. Vubec jsem si toho nevšiml, Díky moc…

s4muel
Člen | 92
+
0
-

ja len doplnim z dokumentacie, ze druhy parameter tej podmienky je velkost v bytoch:

$form->addUpload('avatar', 'Avatar:')
    ->addRule(Form::IMAGE, 'Avatar musí být JPEG, PNG nebo GIF.')
        ->addRule(Form::MAX_FILE_SIZE, 'Maximální velikost souboru je 64 kB.', 64 * 1024 /* v bytech */);

takze namiesto 2000, tam asi budes chciet mat 2 * 1024 * 1024 (2097152)

iwory
Člen | 147
+
0
-

s4muel napsal(a):

ja len doplnim z dokumentacie, ze druhy parameter tej podmienky je velkost v bytoch:

$form->addUpload('avatar', 'Avatar:')
    ->addRule(Form::IMAGE, 'Avatar musí být JPEG, PNG nebo GIF.')
        ->addRule(Form::MAX_FILE_SIZE, 'Maximální velikost souboru je 64 kB.', 64 * 1024 /* v bytech */);

takze namiesto 2000, tam asi budes chciet mat 2 * 1024 * 1024 (2097152)

jj, díky, zkoušel jsem jenom měnit případné velikosti. Nic méně díky za postřeh ;-)