Uploadovanie – testovanie isset($values->image);
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Čamo
- Člen | 798
Prosím vás,
mám formulár, kde sú dva nepovinné upload buttony. A onsucces
vyzerá takto:
$form->onSuccess[] = function (Form $form)
{
$values = $form->getValues();
$path = '/images/invoices/';
// Najprv zisťujem, či je vôbec nejaký súbor vybratý
if(isset($values->stamp))
{
// Potom či je OK, ale neviem, či to dobre chápem
if(!$values->stamp->isOk())
{
$form->addError('Pri sťahovaní obrázku pečiatky došlo k chybe. Skúste to znova prosím.');
}
else
{
try
{
$values->stamp->move($path.$values->stamp->getName());
}
catch (\RuntimeException $e)
{
$form->addError('Nepodarilo sa uložiť obrázok pečiarky. Skúste to ešte raz prosím.');
}
}
}
if(isset($values->logo))
{
if(!$values->logo->isOk())
{
$form->AddError('Pri sťahovaní obrázku pečiatky došlo k chybe. Skúste to znova prosím.');
}
else
{
try
{
$values->logo->move($path.$values->logo->getName());
}
catch (\RuntimeException $e)
{
$form->addError('Nepodarilo sa uložiť obrázok loga. Skúste to ešte raz prosím.');
}
}
}
if(!$form->hasErrors())
{
$this->redirect('this');
}
};
Problém je v tom, že podmienka isset($values->image) je vždy TRUE. Takže sa to spustí aj keď obrázok nieje vybratý. A to ja nechcem.
Editoval Čamo (2. 12. 2014 10:45)
- Čamo
- Člen | 798
Vracia to:
Nette\Utils\ArrayHash #596c
logo => Nette\Http\FileUpload #a640
name private => NULL
type private => NULL
size private => NULL
tmpName private => NULL
error private => 4
stamp => Nette\Http\FileUpload #9084
name private => NULL
type private => NULL
size private => NULL
tmpName private => NULL
error private => 4
Čiže by som mal otestovať if(!is_null($values->getName)) ak dobre rozumiem?
V každom prípade ďakujem, už to testuje správne, ibaže mi nič neuloží. Asi bude chyba v tej ceste?
Editoval Čamo (2. 12. 2014 11:51)
- Michal Vyšinský
- Člen | 608
Jistější bude testovat jesti $values->stamp->getError() === UPLOAD_ERR_NO_FILE viz. http://php.net/…d.errors.php