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->setDestination( Bootstrap::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;
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');
}
}
}
Un saludo