In this article, we will see how to validate laravel 8 image upload validation. In image upload validation you can add validation using the validate() function of laravel and also you can add multiple image uploads with validation in laravel 8. In laravel 8 many validations are available for image validation, form validation, URL validation, string validation, and much more.
In laravel 8, you can validate an image using the file under validation must be an image (jpg, jpeg, png, bmp, gif, svg, or webp). Also, you can required image validation, size of the image, dimension of the image, etc.
Read More Official Document: Laravel 8 Validation.
So, Let's, see how to validate the image in laravel 8 and how to validate multiple image uploads in laravel.
public function imageValidation(Request $request)
{
$request->validate([
'image' => 'required|image|mimes:jpg,png,jpeg|max:2048|dimensions:min_width=100,min_height=100,max_width=500,max_height=500',
]);
}
Now, we will see an example of a laravel 8 image upload with validation. So, first, you need to add routes to the web.php file.
routes/web.php
Route::get('image','ImageController@image');
Route::post('image-store','ImageController@imageStore')->name('image.store');
app/Http/controllers/ImageController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ImageController extends Controller
{
public function image()
{
return view('image');
}
public function imageStore(Request $request)
{
$request->validate([
'image' => 'required|image|mimes:jpg,png,jpeg|max:2048',
]);
return redirect()->back();
}
}
resources/views/image.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Laravel 8 Image Upload Validation - Techsolutionstuff</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha256-L/W5Wfqfa0sdBNIKN9cG6QA5F2qx4qICmU2VgLruv9Y=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha256-WqU1JavFxSAMcLP2WIOI+GB2zWmShMI82mTpLDcqFUg=" crossorigin="anonymous"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-6 offset-3">
<div class="card mt-5">
<div class="card-header bg-dark">
<h3 class="text-white text-center"><strong>Laravel 8 Image Upload Validation - Techsolutionstuff</strong></h3>
</div>
<div class="card-body">
@if(count($errors) > 0)
@foreach($errors->all() as $error)
<div class="alert alert-danger">{{ $error }}</div>
@endforeach
@endif
<form action="{{ route('image.store') }}" method="post" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label><b>Image :</b></label>
<input type="file" name="image" value="{{ old('image') }}">
</div>
<div class="form-group text-center">
<button class="btn btn-dark" type="submit">Save</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
You might also like: