Subir Archivo
Subir archivos es un caso muy común en las aplicaciones web, esto se debe a que muchas veces necesitamos que el usuario suba una imagen o nos envíe un documento, cualquier cosa que necesitemos, en la antigüedad hacer esto era un poco complejo, había que hacer varias cosas para asegurarnos que todo fuese de la mejor manera, con el pasar de los años y las actualizaciones de PHP el proceso fue más simple, sin embargo es un poco laborioso.
Laravel en su búsqueda de reducir el trabajo para el desarrollador ya tiene este caso planteado y nos permite generar un formulario para subir archivos de forma muy fácil, sumado al manejo de rutas y validaciones reducimos la cantidad de errores que se puedan presentar.
En esta sección veremos cómo crear un formulario que nos permita subir un archivo utilizando Laravel.
Creando el Formulario
Para poder subir archivos a través de un formulario en Laravel necesitamos varias cosas sencillas, lo primero por supuesto es tener una instalación estándar del framework, luego procederemos a realizar un formulario y una ruta que procese el envío post del mismo, para ello vamos a seguir los siguientes pasos:
1- Vamos a crear una ruta que nos dirija a la vista que contiene a nuestro formulario para ello haremos lo siguiente:
2- Hasta ahora todo es terreno conocido, acto siguiente vamos a crear un formulario, pero va a tener unas diferencias, la primera es que en la instrucción de apertura del mismo, vamos a indicarle que debe colocar las cabeceras de recibir archivos, si recordamos en HTML debemos colocar enctype="multipart/form-data" para poder subir archivos por el método POST, pero como no haremos directamente el HTML, Laravel debe saber que tiene que colocarlo, luego definiremos un campo que reciba nuestro archivo, veamos en la siguiente imagen:
3- Una vez que tenemos nuestro formulario ahora debemos establecer la ruta que nos va a recibir la información enviada por POST y que se encargará de guardar el archivo que coloque el usuario. Acá nos ayudaremos de la clase Input que nos ayudará a procesar el archivo y moverlo del directorio temporal a una ubicación definitiva en nuestro servidor, en este caso como no hemos definido una validación sobre el tipo de archivo que debe subir el usuario también utilizaremos un método que nos ayudará a identificar la extensión del mismo, una vez hecho esto si todo fue correcto mostraremos un mensaje de éxito en caso contrario uno de error, veamos en la siguiente imagen el código correspondiente:
Con esto ya podemos subir nuestro archivo de forma exitosa. Debemos considerar que esto es una forma muy básica y no está apta para un entorno de producción, ya que necesitamos validar varias cosas antes de dejarle esto libre al usuario, sin embargo el proceso básico es muy sencillo y por lo tanto las validaciones también lo son.
Ya podemos subir archivos desde un formulario, es cuestión que sepamos en qué punto nuestra aplicación pueda necesitar una funcionalidad como esta, para poder poner en práctica lo aprendido.