
CONTACT
43/3 Lalbagh, Dhaka 1205
arafat.rony1999@gmail.com
+880 1879 923111

First, create a simple form in your Blade view to select and upload an image.
<form action="{{ route('image.upload') }}" method="POST" enctype="multipart/form-data">
@csrf
<input type="file" name="image" required>
<button type="submit">Upload</button>
</form>
Don’t forget to add
enctype="multipart/form-data"so files can be uploaded properly.
In your web.php, define the upload route:
use App\Http\Controllers\ImageController;
Route::post('/upload', [ImageController::class, 'store'])->name('image.upload');
Now, generate a controller if you don’t have one:
php artisan make:controller ImageController
Then inside ImageController.php:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ImageController extends Controller
{
public function store(Request $request)
{
$request->validate([
'image' => 'required|image|mimes:jpg,jpeg,png,gif|max:2048',
]);
$fileName = time() . '.' . $request->image->extension();
$request->image->move(public_path('uploads'), $fileName);
return back()->with('success', 'Image uploaded successfully!')
->with('image', $fileName);
}
}
If you want to show the uploaded image after success:
@if(session('image'))
<img src="{{ asset('uploads/' . session('image')) }}" width="300">
@endif
With just a form, route, and controller, you can easily implement image uploads in Laravel 10. For production apps, consider using Laravel’s Storage facade with Amazon S3, DigitalOcean Spaces, or other cloud storage services for better scalability and security.