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

السؤال

نشر

قمت بعمل إستمارة Form ووضعت فيها حقل input من نوع file ليتم رفع ملف من خلاله ووضعت الخاصية method بنوع post على النحو التالي:

<form method="POST" action="{{route('allPosts.new')}}">
    <input type="file" name="img" />
</form>

لكن المشكلة هنا أن لارافيل Laravel لا يرى أي ملف يتم رفعه، حيث أن الكائن request$ لا يحتوي على أي ملفات، وقمت بتجربة الكود التالي:

dd($request->file('img'));  // NULL
dd($request->files->all());  // []

لكن لا توجد أي ملفات على الإطلاق.

ما المشكلة هنا وكيف أقوم بإصلاحها؟

Recommended Posts

  • 1
نشر

يجب أن تقوم بتحديد نوع تشفير بيانات النموذج المرسلة الى الخادم من خلال استخدام الخاصية enctype الخاصة بالعنصر form وتحديد قيمتها multipart/form-data كالتالي

<form method="POST" action="{{route('allPosts.new')}}" enctype="multipart/form-data">
                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ثم جرب الامر

  • 1
نشر

يجب عليك إضافة enctype في ال Form Tag 

<form method="POST" action="{{route('allPosts.new')}}" enctype="multipart/form-data">
  @csrf
</form>

هذا يستقبل الملفات عند إرسالها في ال Request 

عند اخراج ال request في dd ستجد احد الخانات تدعى Converted File ، وهو الملفات المحولة والمجهزة للتخزين بداخلها الملف ومساره وكذلك نفس الملف لكن مشفر ، في الغالب ستجد الملف هناك . وليس في خانة ال request .

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...