Saltar al contenido

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 FileUploadRequest

En 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!

school Curso completo

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.

access_time 8 horas de contenido
layers 4 tecnologías en 1
update 100% actualizado
code Proyectos prácticos
Ver Curso Laravel 12 arrow_forward

star Incluido en cualquier suscripción

Rutas de aprendizaje