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:- 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, ], - 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".
- 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)); } } - Para borrar un fichero solo es poner "\Storage::disk("miCarpetaParaFIcheros")->delete('nombre_fichero');""