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