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 …