Download Laravel App
composer create-project --prefer-dist laravel/laravel my-app
C:\xampp\htdocs\laravel10project>composer create-project laravel/laravel laravel10project
Connecting our Database
open .env file root directory.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laraveldb
DB_USERNAME=root
DB_PASSWORD=
Database Migration
php artisan migrate
C:\xampp\htdocs\laravel\laravel10project>php artisan migrate
Migration table created successfully.
check database table
Create Controller
php artisan make:controller ImageController
C:\xampp\htdocs\laravel\my-app>php artisan make:controller ImageController
app/Http/Controllers/ImageController.php
//app/Http/Controllers/ImageController.php <?php namespace App\Http\Controllers; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\View\View; class ImageController extends Controller { public function index(): View { return view('image'); } public function imageUpload(Request $request): RedirectResponse { $request->validate([ 'image.*' => 'required|image|mimes:jpeg,jpg,png,gif,svg|max:5120', ]); foreach ($request->image as $value) { $imageName = time().'_'.$value->getClientOriginalName(); $value->move(public_path('images'),$imageName); $imageNams[] = $imageName; } return redirect()->back()->withSuccess('You have successfully upload image.')->with('image',$imageNams); } }View Blade
Bootstrap 5
https://getbootstrap.com/docs/5.0/getting-started/introduction/
https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css
resources/views/image.blade.php
//resources/views/image.blade.php <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Laravel 10 Multiple Image Upload</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script> </head> <body> <div class="container"> <div class="panel panel-primary"> <div class="panel-heading"> <h2>Laravel 10 Multiple Image Upload</h2> </div> <div class="panel-body"> @if($message = Session::get('success')) <div class="alert alert-success" role="alert"> <strong>{{ $message }}</strong> </div> @foreach(\Session::get('image') as $imgs) <img src="images/{{ $imgs }}"> @endforeach @endif <form action="{{ route('image.store') }}" method="post" enctype="multipart/form-data"> @csrf <div class="mb-3"> <label class="form-label">Image:</label> <input type="file" name="image[]" class="form-control @error('image.*') is-invalid @enderror" multiple> @error('image.*') <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>Routes
routes/web.php
//routes/web.php <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ImageController; Route::get('/', function () { return view('welcome'); }); Route::controller(ImageController::class)->group(function(){ Route::get('image-upload','index'); Route::post('image-upload','imageUpload')->name('image.store'); });Run C:\xampp\htdocs\laravel\my-app>php artisan serve
Starting Laravel development server: http://127.0.0.1:8000