Estos fueron los pasos que seguí:
1. Bajar el plugin.Se puede descargar el zip o bajar el código del repositorio de GitHub.
2. Se copia el código en la carpeta
CakePlugin::load('Upload');
4. En la base de datos, en la tabla donde se guarda la referencia a la foto, agregamos dos columnas: una para el identificador de la foto, y otra para el identificador del directorio:
CREATE TABLE `mi_db`.`anuncios` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `titulo` varchar(45) NOT NULL, `id_foto` varchar(15) DEFAULT NULL, `dir` varchar(250) DEFAULT NULL, )
5. En el modelo se configura las opciones para la subida de la imagen:
class Anuncio extends AppModel { public $actsAs = array( 'Upload.Upload' => array( 'id_foto' => array( 'fields' => array( 'dir' => 'dir' ), 'thumbnailSizes' => array( 'big' = '200x200', 'small' =>'120x120', 'thumb' =>'80x80' ), 'thumbnailMethod'=> 'php' ) ) ); }
Observese que se configura los nombre de las columnas que configuramos en la tabla de nuestra base de datos, los tamaños de los thumbnails, y el método para crear los thumbnails (aquí uso php pues es una extensión que viene ya instalado por defecto en la mayoría de los ambientes de desarrollo tipo WAMP).
6. Agrego el código de la vista:
<?php echo $this->Form->create('Anuncio', array('type' => 'file')); echo $this->Form->input('id_foto', array('type' => 'file', 'label' => 'Foto')); echo $this->Form->input('dir', array('type' => 'hidden')); echo $this->Form->end('Guardar Anuncio'); ?>
7. ¡Listo! Las imágenes son guardadas dentro de 'webroot/files' (la ruta se puede configurar).