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
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
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 …