X

Cómo subir archivos en CakePHP

En esta oportunidad vamos a realizar un pequeño tutorial de como realizar una tarea muy común en nuestras aplicaciones como es subir archivos desde un formulario a nuestro servidor, en este caso vamos a ver cómo se hace desde nuestra aplicación realizada en Cakephp. Lo que debemos tener en cuenta es que este procedimiento se realiza normal con nuestra función de php move_uploaded_file ya que es la encarga de realizar como tal la subida de nuestro archivo al servidor.

El proceso sería el siguiente en teoría, tenemos un formulario en nuestra vista en donde nuestro usuario seleccionará una imagen y enviará el formulario por el método post toda la información, en nuestro controlador recibiremos la data del formulario en lo que incluye toda la información del archivos que esta intentando subir al servidor, se define una variable con la ruta definitiva en nuestro servidor  en donde se va a guardar el archivo físicamente en nuestro servidor, luego se utiliza la función move_uploaded_file  para mover el archivo temporal al archivo final en nuestro servidor, si todo es correcto le enviamos un mensaje satisfactorio a nuestro usuario.

Ahora vamos a ver como seria nuestros archivos de vista y nuestro controlador.

Controlador

<?php

public function display() {
if ($this->request->is('post')) {
$nombrearchivo = "app/webroot/files/".$this->data['Pages']['file']['name'];
/* copiamos el archivo*/if (move_uploaded_file($this->data['Pages']['file']['tmp_name'],$nombrearchivo)) {
/* mensaje al usaurio */$this->Session->setFlash('Archivo subido satisfactoriamente');
} else {
/* mensaje al usaurio */$this->Session->setFlash('Error al subir el archivo, verificar.');
}
}
$this->render('home');
}

?>

Vista

<?php

/* Mostrar los mensajes*/
echo $this->Session->flash();

/* Se crea el formulario con la opción para enviar archivos */
echo $this->Form->create('Pages', array('type' => 'file'));

/* creamos el input para seleccionar el archivo */
echo $this->Form->input('file',array( 'type' => 'file'));

/* Cerramos el formulario y se coloca en boton para hacer submit */
echo $this->Form->end('Submit');

?>

Con esta información podemos subir archivos desde nuestro proyecto cakephp de una manera sencilla. Ante cualquier duda por favor déjanos un comentario.

 

Artículos relacionados