Laravel 10|9|8 File Max Min Size Validation Tutorial


File upload min max size validation in laravel; Through this tutorial, you will learn how to validate file min and max upload size in laravel 10|9|8 apps.

Ezoic

Using the Laravel file validation rule class in your request validation, you can validate a file min and max size upload in Laravel 10|9|8 and the maximum & minimum allowed size is 2048 kilobytes (mb).

Laravel 10|9|8 File Upload Max & Min Size Validation Tutorial

Let’s get started with the min and max file upload size validation and the maximum & minimum allowed size is 2048 kilobytes (mb) in laravel 10|9|8 apps:

  • Step 1: Create a Form for File UploadsEzoic
  • Step 2: Create a Controller Method for File Upload
  • Step 3: Define Routes
  • Step 4: Create a View for Success and Errors (Optional)
  • Step 5: Test the File Upload

Step 1: Create a Form for File Uploads

Firstly, you need to create a form that allows users to upload files. You can do this by creating a Blade view. Here’s an example of a simple form:

<!-- resources/views/upload.blade.php -->

<!DOCTYPE html>
<html>
<head>
    <title>File Upload</title>
</head>
<body>
    <h1>Upload a File</h1>

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

Ezoic

Step 2: Create a Controller Method for File Upload

Next, you’ll need a controller method to handle the file upload. You can create a new controller or use an existing one. Here’s an example of a controller method:

// app/Http/Controllers/FileUploadController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FileUploadController extends Controller
{
    public function showForm()
    {
        return view('upload');
    }

    public function upload(Request $request)
    {
        // file size validation in laravel
        $request->validate([
            'file' => 'required|file|mimes:jpeg,png,pdf|max:2048|min:1024', // Adjust min and max values as needed
        ]);

        // Handle the file upload here (e.g., save to storage)

        return redirect()->back()->with('success', 'File uploaded successfully!');
    }
}

In this example, the upload method handles the file upload with min and max size validation. Here are an illustration of the above given code:

  • 'file' is the name of the input field in the form.
  • 'required' ensures that a file must be uploaded.
  • 'file' ensures that the uploaded input is a file.
  • 'mimes' validates the file type (you can customize this list).
  • 'max' specifies the maximum file size in kilobytes (in this case, 2MB).
  • 'min' specifies the minimum file size in kilobytes (in this case, 1MB).

Step 3: Define Routes

Now, define the routes in your routes/web.php file to associate these controller methods with the appropriate URLs:

Ezoic

// routes/web.php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\FileUploadController;

Route::get('/upload', [FileUploadController::class, 'showForm'])->name('show.upload.form');
Route::post('/upload', [FileUploadController::class, 'upload'])->name('upload.file');

Step 4: Create a View for Success and Errors (Optional)

You can create a view to display success or error messages to the user after the upload is processed. Here’s an example:

<!-- resources/views/upload.blade.php -->

@if(session('success'))
    <div class="alert alert-success">
        {{ session('success') }}
    </div>
@endif

@if($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

Step 5: Test the File Upload

Now, you can access the file upload form by visiting /upload in your web browser. Test the file upload process, ensuring that files larger than the specified limit trigger validation errors.

Conclusion

That’s it! You’ve successfully implemented file upload min max size validation in your Laravel 10|9|8 application.

Recommended Laravel Tutorials

EzoicEzoic

Jaspreet Singh Ghuman

Jaspreet Singh Ghuman

Jassweb.com/

Passionate Professional Blogger, Freelancer, WordPress Enthusiast, Digital Marketer, Web Developer, Server Operator, Networking Expert. Empowering online presence with diverse skills.

jassweb logo

Jassweb always keeps its services up-to-date with the latest trends in the market, providing its customers all over the world with high-end and easily extensible internet, intranet, and extranet products.

Contact
San Vito Al Tagliamento 33078
Pordenone Italy
Item added to cart.
0 items - 0.00
Open chat
Scan the code
Hello 👋
Can we help you?