La validación de archivos en Laravel es un paso esencial para asegurar que los datos cargados cumplan con los requisitos de seguridad y funcionalidad en una aplicación. Laravel proporciona métodos sencillos para definir reglas de validación y gestionar archivos de manera segura en el servidor.
Para validar archivos en Laravel, generalmente se usa el método validate
dentro de un controlador. Este método permite especificar las reglas que el archivo debe cumplir, como el tipo de archivo, el tamaño máximo y las dimensiones, en caso de ser una imagen.
Ejemplo básico de validación en un controlador:
public function subirArchivo(Request $request)
{
$request->validate([
'archivo' => 'required|file|mimes:jpg,png,pdf|max:2048', // máximo 2MB
]);
// Si pasa la validación, se puede guardar el archivo
$archivo = $request->file('archivo');
$ruta = $archivo->store('archivos_subidos');
return response()->json(['ruta' => $ruta], 200);
}
En este ejemplo:
required
asegura que se haya cargado un archivo.
file
especifica que debe ser un archivo válido.
mimes:jpg,png,pdf
limita los tipos de archivo permitidos.
max:2048
define el tamaño máximo del archivo en KB (en este caso, 2MB).
Para casos de validación más específicos, Laravel ofrece varias reglas adicionales:
image
: valida que el archivo sea una imagen.
dimensions:min_width=100,min_height=200
: define las dimensiones mínimas para imágenes.
mimetypes:image/jpeg,application/pdf
: valida los tipos MIME permitidos.
Ejemplo de validación avanzada:
$request->validate([
'imagen' => 'required|image|mimes:jpeg,png|dimensions:min_width=100,min_height=200',
]);
Este ejemplo valida que el archivo cargado:
image
).
mimes
).
Algunos ejemplos comunes de validación para la carga de archivos en Laravel son:
'archivo' => 'max:5120'
(para 5MB).
'archivo' => 'mimes:doc,docx,pdf'
.
'archivo' => 'required'
.
Para más detalles sobre la validación de archivos y otras reglas avanzadas, consulta la documentación oficial de Laravel.
Jorge García
Fullstack developer