Stavo provando ad eseguire l'upload di un file: nel mio controller ho questo codice che viene eseguito dopo aver inviato il form (con il campo di tipo file) in post
codice:
if($form->isValid($_POST)) {
$upload = new Zend_File_Transfer_Adapter_Http();
$upload->addValidator('Count', true, array("min" => 1, "max" => 1))
->addValidator('Size', false, 125000)
->addValidator('Extension', false, 'jpg,gif')
->setDestination(Zend_Registry::get('uploadBasePath').'/uploads/news');
$files = $upload->getFileInfo();
foreach ($files as $file => $info) {
if($upload->isValid($file)) {
$upload->receive($file);
}
}
}
Solo che non si comporta in modo coerente. Ho questi 3 problemi
1) Ho reso obbligatorio l'inserimento di un immagine, ma se lascio vuoto il campo non compare alcun errore, nemmeno quando i restanti campi del form sono riempiti correttamente
2) Il metodo setErrorMessage non appartiene alla classe Zend_File_Transfer_Adapter_Http() però non funziona nemmeno come metodo di Zend_Form_Element_File() (per tutti gli altri campi Zend_Form_Element_* riesco a settare i messaggi di errore, per questo campo di tipo 'file' no...)
3) se faccio un getValue mi ritorna 'tmp': quale metodo dovrei usare per recuperare il nome del file?
Inoltre come potrei rinominare il file in caso di file già esistente? La documentazione in merito non è molto chiara.
Riferimenti utili
- http://framework.zend.com/manual/en/zend.file.html
- http://zendguru.wordpress.com/2008/1...ework-revised/
Grazie a tutti.