Laravel 9 File Upload Example

Websolutionstuff | Mar-11-2022 | Categories : Laravel

In this artical, we will explain the laravel 9 file upload example step by step. As we know file upload is the most common task in web development. So, here I will show you how to upload file in laravel 9. In this example, you will learn how to upload file in laravel 9 into the database and storage directory with validation.

Also,we will see how to validate file mime type, size, etc using laravel 9 validation rules

So, let's see file upload in laravel 9 or file upload example in laravel 9

 

Step 1 : Add Routes

First of all, you need to install laravel if you have already then add routes in the routes/web.php file shown below.

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\FileUploadController;

Route::get('file-upload', [FileUploadController::class, 'index']);
Route::post('file-upload', [FileUploadController::class, 'store'])->name('file.store');

 

 

Step 2: Create FileUploadController

Now, create new FileUploadController add two method index() and store(). here the first method will handle get method another one for post. So, copy the below code.

app/Http/Controllers/FileUploadController.php

<?php
  
namespace App\Http\Controllers;
   
use Illuminate\Http\Request;
  
class FileUploadController extends Controller
{
    public function index()
    {
        return view('fileUpload');
    }

    public function store(Request $request)
    {
        $request->validate([
            'file' => 'required|mimes:pdf,xlx,csv|max:1024',
        ]);
    
        $fileName = time().'.'.$request->file->extension();  
     
        $request->file->move(public_path('uploads'), $fileName);
   
     
        return back()
            ->with('success','File Uploaded successfully.')
            ->with('file', $fileName);
   
    }
}

 

 

Store File in Public Folder

$request->file->storeAs('uploads', $fileName); 

// storage/app/uploads/filename.jpg

 

Store File in S3

$request->file->storeAs('uploads', $fileName, 's3');

 

Store File in Storage Folder

$request->file->move(public_path('uploads'), $fileName);

// public/uploads/filename.jpg

 

Step 3: Create Blade File

In the blade file, we will create a basic form with an upload button. So, add the below code.

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 9 File Upload Example - websolutionstuff.com</title>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
       
    <div class="panel panel-primary">
  
        <div class="panel-heading text-center mt-5">
            <h2>Laravel 9 File Upload Example - websolutionstuff.com</h2>
        </div>
  
        <div class="panel-body mt-5">
       
            @if ($message = Session::get('success'))
                <div class="alert alert-success alert-dismissible fade show mb-2" role="alert">
                    {{ $message }}
                    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                </div>
            @endif
      
            <form action="{{ route('file.store') }}" method="POST" enctype="multipart/form-data">
                @csrf
      
                <div class="mb-3">
                    <label class="form-label" for="inputFile">Select File:</label>
                    <input 
                        type="file" 
                        name="file" 
                        id="inputFile"
                        class="form-control @error('file') is-invalid @enderror">
      
                    @error('file')
                        <span class="text-danger">{{ $message }}</span>
                    @enderror
                </div>
       
                <div class="mb-3">
                    <button type="submit" class="btn btn-success">Upload</button>
                </div>
           
            </form>
      
        </div>
    </div>
</div>
</body>
</html>

 

 


You might also like :

Recommended Post
Featured Post
Datatables Expand/Collapse Columns
Datatables Expand/Collapse Col...

In this article, we will see how to expand/collapse columns in datatable. The Datatables API has a number of method...

Read More

Jun-05-2022

How to Download File on the FTP Server Using PHP
How to Download File on the FT...

Today we will see how to download file on the ftp server using php. Many time we have requirment to retrieve file from t...

Read More

May-21-2021

How To Image Optimization In Laravel 9 Using Spatie
How To Image Optimization In L...

In this article, we will see how to image optimization in laravel 9 using spatie. Here, we will learn about image o...

Read More

Feb-10-2023

How to Export CSV File in Laravel
How to Export CSV File in Lara...

In this post we will see how to export CSV file in laravel, Export csv file in laravel is most common function...

Read More

Apr-30-2021