اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر (معدل)

بداية , لا يمكنك تخزين أي ملفات بقاعدة البيانات 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'
   ]);
}
تم التعديل في بواسطة Adnane Kadri
  • 1
نشر (معدل)
بتاريخ 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:

عند الرفع على استضافة، هل يتم حفظ الصور في السيرفر ؟ 

و نفس الأمر بالنسبة للمواقع المرفوعة على السرفرات

 

تم التعديل في بواسطة Adnane Kadri
  • 1
نشر

يمكنك كذالك تخزين الصور ببساطة بإستعمال دالة في المتحكم الخاص بك على الشكل التالي.

 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 ويمكن أيضا تخزينها في مجلدات أخرى حسب الحاجة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...