nefunkcni form pri nahravani vetsich obrazku

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

Ahoj, mam mensi problem, pri zpracovani obrazku. Potřeboval již při definici formuláře informovat uživatele, že nahrává obrázek větší, než je na serveru nastaveno. Zkusil jsem to takto:

public function createComponentUploadFileForm()
       {
           $maxFileSize = 1572864; // 1,5MB
           $phpUploadMaxFileSize = FormTools::bytes(ini_get('upload_max_filesize'));
           if ($phpUploadMaxFileSize < $maxFileSize) {
                   $maxFileSize = $phpUploadMaxFileSize;
           }

           $form = new AppForm();
           $form->addTextArea('description_file', 'Popis*:', 30, 2)
                ->addRule(Form::FILLED, 'Popis musí být vyplněn.');
           $form->addFile('file', 'Soubor*:');
           // soubor je povinný
           // @todo Vytvořit ochranu nahrávaných souborů
           $form['file']
                   ->addCondition('FormTools::uploadTest', $maxFileSize);
                   /*
                           ->addRule(Form::MAX_FILE_SIZE, 'Velikost souboru může být nanejvýš ' .
                                   TemplateHelpers::bytes($maxFileSize) . '.', $maxFileSize);*/


           $form->addHidden('id_photogallery', $this->getRequest['id_photogallery']);
           $form->addSubmit('cancel', 'Ukončit editor')
           ->setValidationScope(FALSE);
           $form->addSubmit('ok', 'Uložit');
           $form->onSubmit[] = callback($this, 'processSaveFile');
           return $form;
       }

chová se to tak, že „processSaveFile“ úplně přeskočí. Pokud nahrávám obrázek, který má velikost v limitu, funguje vše normálně. Jakým způsobem ošetřujete velikost obrázku vy při definici formuláře?

newPOPE
Člen | 648
+
0
-

To som pred casom riesil, tusim je s takymito pripadmi vseobecny problem kedze nie je mozne detekovat nahratie suboru vacsieho ako je limit.

Riesil som to pomocou prem. $_SERVER['CONTENT_LENGTH'] (neviem ci nazov presne sedi) a len checkol ci to ma viac ako je limit a upozornil na to ze sa pradvedpodobne pokusil nahrat subor vacsi …