در لاراول بارگذاری فایل بسیار ساده است برای آموزش بارگذاری فایل در لاراول به بررسی یک مثال کاربردی بصورت زیر می پردازیم. برای این منظور ابتدا با خط فرمان زیر کنترلر را FileUploadController را ایجاد می کنیم.

php artisan make:controller FileUploadController --plain

بعد از اجرای موفق خط فرمان بالا فایل FileUploadController.php ایجاد می گردد آن را بصورت زیر ویرایش نمایید.

app/Http/Controllers/FileUploadController.php
<?php
   
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
  
class FileUploadController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function fileUpload()
    {
        return view('fileUpload');
    }
  
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function fileUploadPost(Request $request)
    {
        $request->validate([
            'file' => 'required|mimes:pdf,xlx,csv|max:2048',
        ]);
  
        $fileName = time().'.'.$request->file->extension();  
   
        $request->file->move(public_path('uploads'), $fileName);
   
        return back()
            ->with('success','You have successfully upload file.')
            ->with('file',$fileName);
   
    }
}

فایل روت را بصورت زیر ویرایش نمایید.

routes/web.php
Route::get('file-upload', 'FileUploadController@fileUpload')->name('file.upload');
Route::post('file-upload', 'FileUploadController@fileUploadPost')->name('file.upload.post');

حال فایل fileUpload.blade.php را در مسیر resources/views بصورت زیر ایجاد نمایید.

resources/views/fileUpload.blade.php
<!DOCTYPE html>
<html>
<head>
    <title>laravel file upload - uclass.ir</title>
    <link rel="stylesheet" href="http://getbootstrap.com/dist/css/bootstrap.css">
</head>
  
<body>
<div class="container">
   
    <div class="panel panel-primary">
      <div class="panel-heading"><h2>laravel file upload - uclass.ir</h2></div>
      <div class="panel-body">
   
        @if ($message = Session::get('success'))
        <div class="alert alert-success alert-block">
            <button type="button" class="close" data-dismiss="alert">×</button>
                <strong>{{ $message }}</strong>
        </div>
        <img src="uploads/{{ Session::get('file') }}">
        @endif
  
        @if (count($errors) > 0)
            <div class="alert alert-danger">
                <strong>Whoops!</strong> There were some problems with your input.
                <ul>
                    @foreach ($errors->all() as $error)
                        <li>{{ $error }}</li>
                    @endforeach
                </ul>
            </div>
        @endif
  
        <form action="{{ route('file.upload.post') }}" method="POST" enctype="multipart/form-data">
            @csrf
            <div class="row">
  
                <div class="col-md-6">
                    <input type="file" name="file" class="form-control">
                </div>
   
                <div class="col-md-6">
                    <button type="submit" class="btn btn-success">Upload</button>
                </div>
   
            </div>
        </form>
  
      </div>
    </div>
</div>
</body>
  
</html>

فولدر uploads را در دایرکتوری روت بسازید و برنامه خود را اجرا نمایید.