Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124


In this tutorial we will learn how to upload multiple images with progress bar in Laravel. A progress bar shows how much time is remaining to upload a file.
When too many files to upload , it takes time to upload on a server. Meanwhile, we can display progress bar so that end user can know how much time is remaining to upload a file.
So in this tutorial we will create file multiple file upload with progress bar.
Route::get('image','ImageController@index');
Route::post('multiple_image','ImageController@uploadMultiple');
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ImageController extends Controller
{
public function index(){
return view('image');
}
public function uploadMultiple(Request $request){
foreach($request->file('image') as $image) {
$new_name = rand() . '.' . $image->getClientOriginalExtension();
$image->move(public_path('upload'), $new_name);
}
$res = array(
'success' => 'Multiple Image File Has Been uploaded Successfully'
);
return response()->json($res);
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Image Validation In Laravel</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.1/js/bootstrap.min.js"></script>
</head>
<body>
<h3 class="text-success" align="center">Multiple Image Upload In Laravel</h3><br>
<div class="container">
<div class="panel-group">
<div class="panel panel-primary">
<div class="panel-heading">Image Validation In Laravel</div>
<form action="{{ url('multiple_image') }}" method="post" enctype="multipart/form-data">
@csrf
<div class="panel-body">
<div class="form-group">
<label class="control-label col-sm-2">Select Image:</label>
<div class="col-sm-5">
<input type="file" name="image[]" multiple>
</div>
</div>
<br><br>
<button class="btn btn-success" type="submit" style='margin-left:20%'>Upload Image</button>
</div>
<div class="progress">
<div class="progress-bar" aria-valuenow="" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
0%
</div>
</div>
<div id="success" class="row"></div>
</form>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$('form').ajaxForm({
beforeSend:function(){
$('#success').empty();
$('.progress-bar').text('0%');
$('.progress-bar').css('width', '0%');
},
uploadProgress:function(event, position, total, percentComplete){
$('.progress-bar').text(percentComplete + '0%');
$('.progress-bar').css('width', percentComplete + '0%');
},
success:function(data)
{
if(data.success)
{
$('#success').html('<div class="text-success text-center"><b>'+data.success+'</b></div><br /><br />');
$('#success').append(data.image);
$('.progress-bar').text('Uploaded');
$('.progress-bar').css('width', '100%');
}
}
});
});
</script>
</body>
</html>