Comparte en Facebook Twitter Google+

filesystem-baner

Sin duda alguna la subida de archivos en aplicaciones PHP es siempre un tema que causa algunos problemas. Laravel, sin embargo, trae consigo un potente herramienta que permite manejar de una manera muy fácil estos procedimientos e incluso permite integrar nuestro proyecto con sistemas de almacenamiento no sólo locales sino otros en la nube como Amazon S3 y Rackspace.

En este caso hablaremos del uso básico y manejo de archivos en discos locales.

Configurando el sistema de archivos

Ingresamos config/filesystems.php y  definimos en donde queremos almacenar los archivos a subir, usaremos una carpeta llamada storage dentro del directorio publico de la app.

Enviando archivos desde un formulario

Para este ejemplo crearemos un controlador llamado StorageController usando artisan desde la consola de comandos

una vez que tengamos el controlador debemos crear una ruta para acceder al formulario en el archivo routes.php dentro del directorio app/Http

y una vista para el formulario llamada new.blade.php que puede quedar de la siguiente forma

Es muy importante incluir el atributo enctype=”multipart/form-data” en todos los formularios que incluyan campos de tipo file y recuerda cambiar el action para que apunte a la URL de tu proyecto local.

Nota : en este ejemplo estoy usando como base la plantilla base ‘app.blade.php’ que viene por defecto en laravel.

Dentro de StorageController definimos la funcion view que retornara el formulario

Si ingresamos a la url del formulario podremos ver algo asi

archivoTambién debemos crear la ruta que se encargará de procesar el archivo que deseamos guardar.

Procesando archivos en el controlador

El proceso es realmente sencillo y como es costumbre al trabajar con laravel, lo podemos hacer usando tan solo unas pocas lineas de código.

editamos el archivo StorageController dentro de la carpeta app/Http/Controllers

Obteniendo archivos almacenados

hay muchas formas de obtener estos archivos, una de ellas es crear una ruta genérica que nos permita acceder a cada archivo de la siguiente forma

para ver el archivo subido ingresamos a la url tu_url/public/storage/nombre_de_archivo 

Funciones adicionales

Laravel nos ofrece algunas funciones adicionales para el manejo de archivos que pueden ser de gran utilidad

Eliminar uno o mas archivos

copiar archivos a un nuevo directorio

Mover archivos a un nuevo directorio

Para mas información no olvides que puedes visitar la documentación oficial de Laravel.

Visita nuestros videotutoriales de Laravel 5 para que aprendas mucho más sobre este poderoso framework de PHP.

Además si quieres aprender aún más a manipular archivos con PHP y Laravel, cuéntanos en los comentarios y por favor comparte el artículo.

Regístrate hoy en Styde y continua mejorando tus habilidades: ver planes.

Lección anterior Múltiples bases de datos con Laravel 5 y Eloquent Lección siguiente Envio de correos con Mailgun en laravel 5