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

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