Laravel एक पावरफुल PHP फ्रेमवर्क है जो वेब एप्लिकेशन को डेवलप करना आसान बनाता है। आज हम सीखेंगे कि कैसे आप अपने Laravel प्रोजेक्ट में यूजर अवतार (User Profile Picture) अपलोड करने की सुविधा जोड़ सकते हैं, और साथ ही इमेज फॉर्मेट व साइज की वैलिडेशन भी कर सकते हैं।
🔧 स्टेप 1: Laravel प्रोजेक्ट तैयार करें
अगर आपके पास पहले से Laravel प्रोजेक्ट नहीं है, तो आप नया प्रोजेक्ट ऐसे बना सकते हैं:
composer create-project laravel/laravel avatar-upload
📁 स्टेप 2: फॉर्म तैयार करें (Blade File)
यूजर से इमेज अपलोड करवाने के लिए एक HTML फॉर्म बनाएं:
resources/views/avatar.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Avatar Upload</title>
</head>
<body>
<h2>यूजर अवतार अपलोड करें</h2>
@if ($errors->any())
<div style="color:red;">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(session('success'))
<div style="color:green;">
{{ session('success') }}
</div>
@endif
<form action="{{ route('avatar.upload') }}" method="POST" enctype="multipart/form-data">
@csrf
<label>अपना अवतार चुनें:</label>
<input type="file" name="avatar" required>
<br><br>
<button type="submit">अपलोड करें</button>
</form>
</body>
</html>
🧾 स्टेप 3: रूट्स बनाएं
routes/web.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AvatarController;
Route::get('/avatar-upload', [AvatarController::class, 'showForm'])->name('avatar.form');
Route::post('/avatar-upload', [AvatarController::class, 'upload'])->name('avatar.upload');
🧑🏫 स्टेप 4: कंट्रोलर बनाएं
App\Http\Controllers\AvatarController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class AvatarController extends Controller
{
public function showForm()
{
return view('avatar');
}
public function upload(Request $request)
{
$request->validate([
'avatar' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048',
]);
$imageName = time().'.'.$request->avatar->extension();
$request->avatar->move(public_path('avatars'), $imageName);
return back()->with('success', 'अवतार सफलतापूर्वक अपलोड हो गया!');
}
}
📁 स्टेप 5: "avatars" फोल्डर बनाएं
आपके प्रोजेक्ट के public/ फोल्डर के अंदर एक नया फोल्डर बनाएं:
mkdir public/avatars
इस फोल्डर में आपके यूज़र्स के अवतार इमेज सेव होंगे।
✅ वैलिडेशन क्या कर रहा है?
$request->validate([
'avatar' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048',
]);
यह लाइन सुनिश्चित करती है कि:
- फाइल इमेज होनी चाहिए (image)
- केवल JPEG, PNG, JPG, या GIF फॉर्मेट हो (mimes)
- फाइल साइज़ 2MB से ज्यादा ना हो (max:2048)
🌟 निष्कर्ष (Conclusion)
Laravel में अवतार अपलोड करना बहुत ही आसान है अगर आप सही तरीके से वैलिडेशन और फाइल हैंडलिंग करें|