Mohammed Abu Yousef نشر 27 أبريل 2021 أرسل تقرير نشر 27 أبريل 2021 أريد أن أقوم بتخزين صورة قادمة من تطبيق جوال ( فلاتر ) في قاعدة البيانات ( MySQL ) باستخدام Laravel يعني ال request يتم إرساله لل API 1 اقتباس
1 Adnane Kadri نشر 27 أبريل 2021 أرسل تقرير نشر 27 أبريل 2021 (معدل) بداية , لا يمكنك تخزين أي ملفات بقاعدة البيانات Sql , عوضا عن ذلك يمكنك إستخدام الfile systems لتخزين الصورة أو الملف و تخزين باث الصورة أو الملف في قاعدة البيانات . يتم إستقبال الطلب من قبل اللارافل و معالجته على هذا النحو : <?php public function uploadImg(Request $request) { // التحقق إن كان الطلب يحمل ملف باسم image if($request->hasFile('image')) { // انشاء اسم بلاحقة للملف $name = time()."_".$request->file('image')->getClientOriginalName(); // تخزين الملف بالpublic path $request->file('image')->move(public_path('images'), $name); } // return response()->json([ asset("images/$name"), // باث الصورة 201, // كود الحالة 'message' => asset("images/$name") ? 'تم حفظ الصورة' : 'failed' ]); } تم التعديل في 27 أبريل 2021 بواسطة Adnane Kadri 2 اقتباس
0 Mohammed Abu Yousef نشر 27 أبريل 2021 الكاتب أرسل تقرير نشر 27 أبريل 2021 (معدل) متشكر جدا طيب أين يتم حفظ الصور؟ قصدي ( عند الرفع على استضافة، هل يتم حفظ الصور في السيرفر ؟ ) تم التعديل في 27 أبريل 2021 بواسطة Mohammed Abu Yousef اقتباس
1 Adnane Kadri نشر 27 أبريل 2021 أرسل تقرير نشر 27 أبريل 2021 (معدل) بتاريخ 21 دقائق مضت قال Mohammed Abu Yousef: متشكر جدا طيب أين يتم حفظ الصور؟ إن كنت تعتمد على تخزين محلي فقط يمكنك تخزين الملفات إما في الـ public_path أو الـ storage_path . في الحالة الأولى ستكون جميع الملفات و الصور المخزنة ظاهرة للعامة و يمكن الوصول إليها ببساطة . تخزن الملفات في : public > your-folder و يكون التخزين على هذا النحو : <?php .. $request->file('image')->move(public_path('your-folder'), $name); في الحالة الثانية لن يمكن إستدعاء الصور و الملفات إلا عن طريق إنشاء رابط symlink و هاته الطريقة أكثر أمانا و حفظا للخصوصية في حالة ما كانت الملفات و الصور المخزنة حساسة أو خاصة . افتراضيا يتم تخزين هاته الصور و الملفات في : storage > app > public > your-folder و التخزين على هذا النحو : <?php .. $request->file('image')->move(storage_path('your-folder'), $name); علما أنه يمكنك إدارة و إنشاء ديسكات التخزين بملف config/filesystems.php : <?php ... 'disks' => [ ... 'storage-path' => [ 'driver' => 'local', 'root' => storage_path('app').'/uploads', ], 'public-path' => [ 'driver' => 'local', 'root' => public_path().'/uploads', 'url' => env('APP_URL').'/public_files', 'visibility' => 'public', ] ... ], ملاحظة : يمكنك إنشاء الsymlink عن طريق طباعة الأمر : php artisan storage:link بتاريخ 28 دقائق مضت قال Mohammed Abu Yousef: عند الرفع على استضافة، هل يتم حفظ الصور في السيرفر ؟ و نفس الأمر بالنسبة للمواقع المرفوعة على السرفرات تم التعديل في 27 أبريل 2021 بواسطة Adnane Kadri 1 اقتباس
1 محمد أيت لعرايك نشر 28 أبريل 2021 أرسل تقرير نشر 28 أبريل 2021 يمكنك كذالك تخزين الصور ببساطة بإستعمال دالة في المتحكم الخاص بك على الشكل التالي. public function uploadImage(Request $request) { $request->validate([ 'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', // تحديد صيغة الصورة وحجمها ]); $imageName = time().'.'.$request->image->extension(); // أعطاء إسم مناسب للصورة $request->image->move(public_path('images'), $imageName); // public/images رفع الصورة إلى الخادم في مجلد return back() ->with('success','You have successfully upload image.') ->with('image',$imageName); } و إجابتا على سؤالك الثاني فالصور تحفظ داخل مجلدات المشروع في الخادم. فمثلا في هذا المثال ستجد الصورة في مجلد public/images ويمكن أيضا تخزينها في مجلدات أخرى حسب الحاجة. 1 اقتباس
السؤال
Mohammed Abu Yousef
أريد أن أقوم بتخزين صورة قادمة من تطبيق جوال ( فلاتر ) في قاعدة البيانات ( MySQL ) باستخدام Laravel
يعني ال request يتم إرساله لل API
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.