Volver a la página principal
miércoles 30 octubre 2024
24

Cómo validar la subida de ficheros en Laravel

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.

Validar archivos en Laravel

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).

Validación avanzada de archivos en Laravel

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:

  • Sea una imagen (image).
  • Sea de tipo JPEG o PNG (mimes).
  • Tenga un ancho y alto mínimos de 100x200 píxeles.

Ejemplos de reglas de validación

Algunos ejemplos comunes de validación para la carga de archivos en Laravel son:

  • Tamaño máximo: 'archivo' => 'max:5120' (para 5MB).
  • Tipo de archivo específico: 'archivo' => 'mimes:doc,docx,pdf'.
  • Archivo obligatorio: 'archivo' => 'required'.

Referencia a la documentación oficial

Para más detalles sobre la validación de archivos y otras reglas avanzadas, consulta la documentación oficial de Laravel.

Etiquetas:
laravel php
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer