Para subir archivos en cakePHP debemos modificar la vista para que el formulario esté preparado para subir archivos:
<?php echo $this->Form->create('Country', array('type' => 'file')); ?> <fieldset> <legend><?php echo __('Add Country'); ?></legend> <?php echo $this->Form->input('country'); echo $this->Form->file('archivo'); echo $this->Form->input('last_update'); ?> </fieldset> <?php echo $this->Form->end(__('Submit')); ?>
Después en el controlador tenemos el archivo dentro de request->data, lo movemos igual que lo haríamos en php:
public function add() { if ($this->request->is('post')) { $this->Country->create(); if ($this->Country->save($this->request->data)) { $archivo = $this->request->data['Country']['archivo']; move_uploaded_file($archivo['tmp_name'], WWW_ROOT . 'files' . DS . $archivo['name']); $this->Flash->success(__('The country has been saved.')); return $this->redirect(array('action' => 'index')); } else { $this->Flash->error(__('The country could not be saved. Please, try again.')); } } }