Subir archivos en Laravel es una funcionalidad esencial para muchas aplicaciones web. En este tutorial, aprenderás a implementar la subida de archivos utilizando Blade, sin dependencias adicionales. Exploraremos desde la configuración del formulario hasta la validación y el procesamiento con el patrón Action, siguiendo las mejores prácticas para mantener tu código limpio y organizado.
Nota: Si necesitas ajustar el tamaño máximo de subida de archivos para evitar errores en diferentes entornos, consulta nuestra guía relacionada: Cómo ajustar el tamaño máximo de subida de archivos en Laravel de forma segura.
Paso 1: Crear el formulario con Blade
El formulario debe incluir el atributo enctype="multipart/form-data" para que los archivos puedan enviarse al servidor correctamente:
En este caso:
@csrf: Protege el formulario contra ataques CSRF.enctype="multipart/form-data": Es obligatorio para la subida de archivos.
Paso 2: Configurar la ruta
Define una ruta en tu archivo web.php:
Paso 3: Crear el Form Request para la validación
Para mantener el controlador limpio, utilizaremos un Form Request para la validación del archivo:
php artisan make:request FileUploadRequestEn el archivo FileUploadRequest.php, define las reglas de validación:
Paso 4: Crear la Action para el procesamiento
Siguiendo el patrón Action, delegamos la lógica a una clase específica. Crea un directorio Actions/File y dentro un archivo UploadFileAction.php:
Para más información sobre el patrón Action y cómo implementarlo con IoC y pruebas, consulta nuestra guía: Patrón Action en Laravel con IoC y Tests.
Paso 5: Implementar el controlador
El controlador delegará la validación al Form Request y la lógica a la Action:
Paso 6: Mostrar mensajes de éxito con @session
En la vista, utilizaremos la directiva @session para mostrar mensajes de éxito de forma más limpia. En este caso, simplemente imprimiremos el valor del mensaje de la sesión:
Este enfoque mejora la legibilidad y la limpieza del código, aprovechando la nueva funcionalidad de Laravel a partir de la versión 10.38.
Resultado final
Con este flujo, ahora tienes un sistema robusto para subir archivos en Laravel utilizando Blade. El uso de un Form Request y una Action garantiza que el código sea modular, fácil de mantener y cumpla con las mejores prácticas.
¿Quieres seguir profundizando en las últimas novedades de Laravel?
No te pierdas nuestra ruta de Laravel 11, donde exploramos las funciones más recientes del framework, prácticas avanzadas y consejos para optimizar tus proyectos. ¡Te esperamos allí para que lleves tus aplicaciones al siguiente nivel!
Curso Laravel 12
Completo 2026
El único curso 100% actualizado que incluye Laravel 12, Livewire 3, Vue 3, React 19 e Inertia 2. Aprende con proyectos reales y las últimas funcionalidades.
star Incluido en cualquier suscripción