Puedes dar mas información? código usado, error, etc.... Saludos,
-- Pablo Viojo [EMAIL PROTECTED] http://pviojo.net On 8/8/07, Daniel Perez <[EMAIL PROTECTED]> wrote: > > He probado el behavior, pero me da un error en el array_merge() ¿...? > > On 7 ago, 00:26, "Pablo Viojo" <[EMAIL PROTECTED]> wrote: > > http://www.google.com/search?q=upload+behavior+cakephp > > > > On 8/6/07, Pablo Moretti <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > Tenia el articulo guardado en un PDF espero que te sirva, Saludos > > > > > CREATE TABLE files ( > > > id INT(11) NOT NULL AUTO_INCREMENT, > > > name VARCHAR(75) NOT NULL, > > > type VARCHAR(255) NOT NULL, > > > size INT(11) NOT NULL, > > > data MEDIUMBLOB NOT NULL, > > > created DATETIME, > > > modified DATETIME, > > > PRIMARY KEY (id) > > > ); > > > Note: Use MEDIUMBLOB or LONGBLOB as data type unless you know for sure > > > that > > > the file size of the > > > uploaded files is never bigger than 64kB. > > > The model is straight-forward: > > > // app/models/file.php > > > class File extends AppModel > > > { > > > var $name = 'File'; > > > } > > > We omit the controller for the moment and create directly the view: > > > // app/views/files/add.thtml > > > <form action="/files/add" enctype="multipart/form-data" method="post"> > > > <?php echo $html->file('File'); ?> > > > <?php echo $html->submit('Upload')); ?> > > > </form> > > > So, now we ready to build the controller and to implement the add() > > > function: > > > // app/controllers/files_controller.php > > > class FilesController extends AppController > > > { > > > function add() > > > { > > > if (!empty($this->params['form']) && > > > > > is_uploaded_file($this->params['form']['File']['tmp_name'])) > > > { > > > $fileData = > > > fread(fopen($this->params['form']['File']['tmp_name' > > > > > $this->params['form']['File']['size']); > > > $this->params['form']['File']['data'] = > > > $fileData; > > > > > $this->File->save($this->params['form']['File']); > > > $this->redirect('somecontroller/someaction'); > > > } > > > } > > > } > > > Easy, isn't it? Up to now we have stored the file in the database. To > > > retrieve the file from the database, we > > > need a download() action which we add to our controller: > > > function download($id) > > > { > > > $file = $this->File->findById($id); > > > header('Content-type: ' . $file['File']['type']); > > > header('Content-length: ' . $file['File']['size']); > > > header('Content-Disposition: attachment; > > > filename='.$file['File']['name' > > > echo $file['File']['data']; > > > exit(); > > > } > > > > > ------------------- > > > > > El día 6/08/07, Daniel Perez <[EMAIL PROTECTED]> escribió: > > > > > > Mmmmm... la cosa, es ¿donde esta ese behavior? > > > > > > Parece ser que el enlace ya no funciona... > > > > >http://bakery.cakephp.org/articles/view/improved-upload-behaviour-wit... > > > > > > Saludos, > > > > > > On 1 jul, 23:40, Gorka <[EMAIL PROTECTED]> wrote: > > > > > Pues resulta que es extremadamente sencillo de utilizar y funciona > > > > > estupendamente, lástima que el artículo de Bakery sea (en mi opinión) > > > > > francamente malo intentando explicarlo. > > > > > > > El proceso para utlizarlo es tan sencillo como copiar el behaviour > > > > > (CakePHP >= 1.2) en la carpeta /app/models/behaviours o en /cake/libs/ > > > > > model/behaviours e incluir un fragmento como este en el modelo que > > > > > necesitasubirficheros: > > > > > > > var $actsAs = array('Upload' => array( > > > > > 'foto1' => array( > > > > > 'dir' > > > => 'files/images', > > > > > 'overwrite_existing' => false, > > > > > 'create_directory' => true, > > > > > 'allowed_mime' => array('image/jpeg', 'image/pjpeg', 'image/ > > > > > gif', 'image/png'), > > > > > 'allowed_ext' => array('.jpg', '.jpeg', '.png', '.gif'), > > > > > 'thumbsizes' => array( > > > > > 'small' => array('width'=>100, 'height'=>100), > > > > > 'medium' => array('width'=>400, 'height'=>300) > > > > > ) > > > > > ), > > > > > 'foto2' => array( > > > > > 'dir' > > > => 'files/images', > > > > > 'overwrite_existing' => false, > > > > > 'create_directory' => true, > > > > > 'allowed_mime' => array('image/jpeg', 'image/pjpeg', 'image/ > > > > > gif', 'image/png'), > > > > > 'allowed_ext' => array('.jpg', '.jpeg', '.png', '.gif'), > > > > > 'thumbsizes' => array( > > > > > 'small' => array('width'=>100, 'height'=>100), > > > > > 'medium' => array('width'=>400, 'height'=>300) > > > > > ) > > > > > ), > > > > > /* ... */ > > > > > ) > > > > > ); > > > > > > > Donde "foto1" y "foto2" son los nombres de los campos del modelo en > > > > > los que se va a almacenar el nombre del fichero subido. Con > > > > > 'Thumbsizes' hemos especificado los tamaños de thumb que se generarán > > > > > automáticamente, y sólo tenemos que preocuparnos de que el directorio > > > > > de subida tenga permiso de escritura para el servidor web (775 en > > > > > Unix). > > > > > > > En la vista en la que queremossubirlos ficheros indicamos los campos > > > > > de formulario (que deben ser > > > 'enctype="multipart/form-data"') en la > > > > > forma $form->file('Modelo.campo') y listo. > > > > > > > Una maravilla, oiga. > > > > > > > On 29 jun, 13:44, Gorka <[EMAIL PROTECTED]> wrote: > > > > > > > > He visto uploadbehaviour en Bakery, pero no acabo de entender cómo > > > > > > funciona. ¿Después de crear la tabla de uploads en la BBDD se añade > > > > > > el > > > > > > behaviour a cualquier modelo que tengamos (por ejemplo, artículos) y > > > > > > listo para admitir imágenes en ese modelo? ¿Admite varias imágenes? > > > > > > Porque no veo cómo relaciona el artículo con las imágenes... no > > > > > > acabo > > > > > > de coger el asunto, y el caso es que vendría genial algo así. Si lo > > > > > > has probado, ¿podrías comentarlo? > > > > > > > > On 27 jun, 13:26, dardosordi <[EMAIL PROTECTED]> wrote: > > > > > > > > > De todos modos en 1.2 puedes probar el uploadbehaviour (cuando > > > tengas > > > > > > > claros los conceptos y entiendas comosubirun archivo por ti mismo) > > > > > > > que es una maravilla. > > > > > > > > > On 26 jun, 08:09, lloku < [EMAIL PROTECTED]> wrote: > > > > > > > > > > Tienes un post un poco mas abajo: > > >http://groups.google.com/group/CakePHP-es/browse_thread/thread/b07d26... > > > > > > > > > > En el que Carlos Z. le explica a otro usuario de una manera > > > bastante > > > > > > > > correcta la funcion que debe añadir en el controlador para > > > > > > > > guardar > > > una > > > > > > > >imagen... Este método no tiene nada que ver con el conocimiento > > > > > > > >de > > > > > > > > cake, sino con el de PHP... > > > > > > > > > > Como apuntes por si desconoces del todo el tema, el formulario > > > > > > > > con > > > el > > > > > > > > que envías la imágen debe ser: ENCTYPE='multipart/form-data' > > > > > > > > para > > > > > > > > poder envíar ficheros. Lo que se hace, lógicamente, no es > > > > > > > > "guardar > > > una > > > > > > > >imagenen unabasededatos", sino guardar un archivo en el servidor > > > > > > > >y > > > > > > > > guardar el nombre de dicho archivo en un campo de la tabla > > > > > > > > creado > > > para > > > > > > > > tal efecto. > > > > > > > > > > Quizás te interese depurar un poco la función, filtrando los > > > > > > > > mime > > > type > > > > > > > > para asegurarte de que lo que te envían es unaimagen(propiedad > > > > > > > > [type]) y asegurarnos de que no existe ya un archivo con ese > > > nombre, y > > > > > > > > si es así cambiarlo. > > > > > > > > > > Todo esto lo encontraras en manuales de php, si mal no recuerdo > > > > > > > > en > > > el > > > > > > > > manual oficial de PHP hay un apartado dedicado al manejo de > > > archivos, > > > > > > > > ahí encontraras la información necesaria y ejemplos. > > > > > > > > > > Saludos.- Ocultar texto de la cita - > > > > > > > > > - Mostrar texto de la cita -- Ocultar texto de la cita - > > > > > > > > - Mostrar texto de la cita - > > > > -- > > Pablo Viojo > > [EMAIL PROTECTED]://pviojo.net- Ocultar texto de la cita - > > > > - Mostrar texto de la cita - > > > > > --~--~---------~--~----~------------~-------~--~----~ Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos de Google. Si quieres publicar en este grupo, envía un mensaje de correo electrónico a [email protected] Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED] Para obtener más opciones, visita este grupo en http://groups.google.com/group/CakePHP-es?hl=es. -~----------~----~----~----~------~----~------~--~---
