SUBIR ARCHIVOS EN LARAVEL 11: CÓMO IMPLEMENTARLO

Subir ficheros con laravel 11 es bastante sencillo . Supongamos que tenemos una ruta con el formulario y un campo "file" y una ruta donde apuntará el "action" del formulario. Hay que hacer lo siguiente:
  1. Dentro de la carpeta "App/config" abrir el fichero "filesystems.php" y hay unos arrays para configurar ciertas rutas. Se puede usar alguno que ya existe, como por ejemplo el "public" o configurar uno nuevo, para configurar uno nuevo, se puede copiar el "public", pegarlo al final y cambiar ciertos valores:

    'nombreMiSeccion' => [
      'driver' => 'local',
      'root' => storage_path('app/miCarpetaParaFIcheros'),
      'url' => env('APP_URL').'/storage',
      'visibility' => 'public',
      'throw' => false,
      'report' => false,
    ],
    
  2. Dentro de la carpeta "storage/app" se creará la carpeta especificada en la sección anterior. En el caso del ejemplo se crearía la carpeta "miCarpetaParaFIcheros".
  3. En el controlador y método donde se reciben los datos del formulario donde se va a subir el fichero se hace lo siguiente:

    $image = $request->file('nombreCampoFile');
    //En este caso se valida que sea una imagen pero se podría validar, un pdf, csv o cualquier otro fichero, solo es poner los nimes necesarios
    $validator = Validator::make($request->all(),[
      'nombreCampoFile' => 'required|image|mimes:jpg,jpeg,gif,png'
    ]);
    //Se comprueba la validación
    if ($image && empty( $validator->fails())){
      //Npmbre de la imagen timestamp atual, guion bajo y el nombre del fichero
      $image_name = time() . '_' . $image->getClientOriginalName();
     //Se guarda el fichero en la ruta configurada en los pasos anterioes
      \Storage::disk("miCarpetaParaFIcheros")->put($image_name, \File::get($image));
    }
    }
    
  4. Para borrar un fichero solo es poner "\Storage::disk("miCarpetaParaFIcheros")->delete('nombre_fichero');""
En el post como recuperar una imagen en Laravel 11 explico como recuperar una imagen subida por el usuario.