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.