Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/05/2010, 13:39
wigglyUtrera
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Renombrar archivo Zend_Form

Hola, no se que pasa que no consigo renombrar el nombre del archivo.

El archivo se escribe correctamente en la carpeta que le indico, pero con el nombre original.

He usado el filter Rename, pero no se que pasa.

Código PHP:
private function _getForm($idTrabajo)
    {
        
$form = new Zend_Form();
        
$form->setAction($this->view->baseUrl '/usuario/miTrabajo/entrega')
                ->
setAttrib('enctype'Zend_Form::ENCTYPE_MULTIPART)
                ->
setMethod('post');
            
        
//Zend_Debug::dump($this->view->baseUrl . '/trabajos');
        
$file $form->createElement('file''archivo', array('label' => 'Selecciona un fichero'));
        
$file->setDestinationBootstrap::getBaseDir() . $this->_config->rutaArchivos);
        
        
$tipos $form->createElement('select','tipoArchivo', array('label' => 'Tipo de archivo'));
        
        foreach(
$this->_tipoArchivoModelo->obtenerTodos() as $t){
            
$tipos->addMultiOption($t->id$t->tipo);
        }
        
        
$oculto $form->createElement('hidden''idTrabajo', array('value' => $idTrabajo));
        
$form->addElement($oculto);
        
        
$submit $form->createElement('submit''enviar', array('label' => 'Subir archivos'));
        
$submit->setIgnore(true);
        
        
$form->addElement($file)
             ->
addElement($tipos)
             ->
addElement($submit);
        
        return 
$form
y despues lo trato aqui:

Código PHP:
public function entregaAction()
    {
        if (
$this->getRequest()->isPost()){
            
$formData $this->_request->getPost();
            
$idTrabajo $formData['idTrabajo'];
            
$form $this->_getForm($idTrabajo);
            
$file $form->archivo;
            if( 
$form->isValid($this->getRequest()->getParams()) ){
                
$bind $form->getValues();
                
                
$upload = new Zend_File_Transfer_Adapter_Http();
                
$upload->addFilter('Rename', array('target' => $this->_config->rutaArchivos .'nombreNuevo.jpg',        
                                                    
'overwrite' => true)); 
                if(
$upload->isUploaded()){                  
                    
$this->_layout->mensaje "Archivo guardado correctamente";
                    
$this->_layout->class "success_message";
                
                    
$filename $_FILES['archivo']['name'];                 
                } else {
                    
$this->_layout->mensaje "Se ha producido un error al guardar el archivo. Vuelva a intentarlo pasado unos minutos.";
                    
$this->_layout->class "error_message";
                }            
                
$this->_forward('index');
            }         
        }
    } 
Gracias

Un saludo