File uploading in laravel is very easy. First You create view file where user select a file and create controller for processed selected file.

Step-1: 

First create uploadfile.blade.php  in  resources/views/ directory and copy the code in that file.

<form action="{{ route('upload') }}" method="POST" enctype="multipart/form-data">
    @csrf
    <input type="file" name="image">
    <button type="submit">Upload</button>
</form> 

Step- 2: 

Second step create controller UploadController By executing this command

php artisan make:controller UploadController

Open the generated UploadController.php file in the app/Http/Controllers directory and put this code in this file

Note: Create a directory named ‘images’ in the ‘public’ directory to store uploaded images.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class UploadController extends Controller
{

  public function index() {
      return view('uploadfile');
   }
    public function upload(Request $request)
    {
        $request->validate([
            'image' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048', // You Adjust max size and file extension
        ]);

        $imageName = time() . '.' . $request->image->extension();

        $request->image->move(public_path('images'), $imageName);

        return "Image uploaded successfully!";
    }
}
?>

Step- 3:

In your web.php file. define a route to handle the file upload request and upload file.

<?php

use App\Http\Controllers\UploadController;

Route::get('/uploadfile','UploadFileController@index');
Route::post('/upload', 'UploadFileController@upload')->name('upload');

?>

Step- 4: 

Visit This url to test upload file functionality

http://localhost:8000/uploadfile