حسام شبل نشر 1 سبتمبر 2021 أرسل تقرير مشاركة نشر 1 سبتمبر 2021 (معدل) كيف يمكننى تخزين الصور في laravel تم التعديل في 1 سبتمبر 2021 بواسطة Adnane Kadri توضيح السؤال 2 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 Adnane Kadri نشر 1 سبتمبر 2021 أرسل تقرير مشاركة نشر 1 سبتمبر 2021 ستحتاج في هذا إنشاء : ملف عرض : لعرض نموذج الإدخال و رفع الصورة و تقديمها إلى الواجهة الخلفية . متحكم : ليحتوي تابعا يتولى مهمة التحقق من المدخلات و فحص ملف الصورة و تخزينه . مسارين : واحد لعرض نموذج رفع الصورة أو الملف و واحد لإستهداف تابع المتحكم الخاص بالرفع . تعريف المسارين بداخل ملف web.php سيكون كالتالي : Route::view('/upload-image' ,'upload-image'); # إعادة ملف عرض Route::post('/upload-image' , 'UploadImageController@store'); # store إستهداف تابع المتحكم ملف العرض upload-image.blade.php سيحتوي بنية HTML مشابهة للتالي : <form action="/upload-image" method="POST" enctype="multipart/form-data" > <!-- يجب تحديد نوع التشفير --> @method('POST') @csrf <div class="form-group"> <label>صورة</label> <input type="file" name="image" required> </div> <button type="submit">رفع الملف</button> </form> المتحكم UploadImageController.php سيحتوي التابع store بالشيفرة التالية : public function store(Request $request) { // التأكد من أن الطلب يمتلك بالفعل ملف if ($request->hasFile('image')) { // التحقق من الملف صورة بلاحقة ملف صورة $request->validate([ 'image' => 'mimes:jpeg,bmp,png' ]); // images في مجلد app/storage/public تخزين الملف محليا في مجلد $request->image->store('images', 'public'); } return back(); } بعد تقديم النموذج و نجاح التحميل سيمكنك الوصول إلى الملفات المخزنة عن طريق التصفح إلى المسار : app/storage/public/images و ستلاحظ وجود ملف الصورة المرفوعة حديثا . هذا لن يكفي لجعل الصورة قابلة للوصول , فلا يزال عليك إنشاء الرابط الرمزي بين المسارين : storage/public/ و : public/storage سيمكن هذا عن طريق تنفيذ الأمر : php artisan storage:link ستلاحظ إنشاء رابط رمزي بين المجلد storage داخل public و public داخل app/storage . و يمكنك الوصول إلى رابط هاته الصور عن طريق التابع hashName في : // images في مجلد app/storage/public تخزين الملف محليا في مجلد $request->image->store('images', 'public'); $filePath = '/storage' .$request->file->hashName(); اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 شرف الدين حفني نشر 1 سبتمبر 2021 أرسل تقرير مشاركة نشر 1 سبتمبر 2021 تريد تخزين الصور في قاعدة البيانات ام على المساحة التخزينية؟ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Ziyad Hasan نشر 1 سبتمبر 2021 أرسل تقرير مشاركة نشر 1 سبتمبر 2021 (معدل) أولا يجب إنشاء controller يحتوي علي function بإسم uploadImage كالأتي public function uploadImage(Request $request){ $file = $request->file('photo'); $fileName = time() . '-' . $file-> getClientOriginalName(); $file->move(images , $fileName); Items::create([ 'image'=>$fileName ]) } كما ترى في الكود السابق أولا يتم تخزين الملف في متغير يسمى file$ ثم تخزن إسم الملف مضافا إليه الوقت لكي تعطي إسم مميز لكل صورة في متغير يسمى fileName$ ثم تخزن الملف في مجلد images الذي تم إنشائه في مجلد public عن طريق استخدام function تسمى move ثم يخزن إسم الملف في قاعدة البيانات و تستطيع أن ترسل الملف عن طريق الblade من خلال الform الأتية <form method="POST" action="{{ route('items.insert') }}" enctype="multipart/form-data"> @csrf <div class="form-group"> <label for="exampleInputPassword1">photo</label> <input type="file" name="photo" class="form-control" id="exampleInputPassword1"> @error('photo') <small style="color: red"> {{ $message }} </small> @enderror </div> <button type="submit" class="btn btn-primary">Submit</button> </form> و يجب أن تحتوي الform علي enctype attribute مساوي ل multipart/form-data لكي ترسل الملف وال input يجب أن يحتوي على attribute type مساوي ل file و تنشأ route كالأتي Route::post ('/post' , 'ItemsController@create')->name('items.insert'); تم التعديل في 1 سبتمبر 2021 بواسطة Ziyad Hasan 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
حسام شبل
كيف يمكننى تخزين الصور في laravel
تم التعديل في بواسطة Adnane Kadriتوضيح السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.