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-with-thumbnails-and-name-correction
> >
> > 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]
http://pviojo.net

--~--~---------~--~----~------------~-------~--~----~
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.

-~----------~----~----~----~------~----~------~--~---

Responder a