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.

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 Uploads
  • 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>

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:

// 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

AuthorDevendra Dode

Greetings, I'm Devendra Dode, a full-stack developer, entrepreneur, and the proud owner of Tutsmake.com. My passion lies in crafting informative tutorials and offering valuable tips to assist fellow developers on their coding journey. Within my content, I cover a spectrum of technologies, including PHP, Python, JavaScript, jQuery, Laravel, Livewire, CodeIgniter, Node.js, Express.js, Vue.js, Angular.js, React.js, MySQL, MongoDB, REST APIs, Windows, XAMPP, Linux, Ubuntu, Amazon AWS, Composer, SEO, WordPress, SSL, and Bootstrap. Whether you're starting out or looking for advanced examples, I provide step-by-step guides and practical demonstrations to make your learning experience seamless. Let's explore the diverse realms of coding together.

Leave a Reply

Your email address will not be published. Required fields are marked *