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

رفع ملفات في nested array php

محمود موسى2

السؤال

السلام عليكم.

عندي api لإستلام أجوبة إختبار، وأقوم بإستلام الأجوبة على دفعة واحدة ك array of objects.

كل object يحتوي على question_id, answer, file

الخانة file عبارة عن ملف على هيئة صورة، وكل object به ملف..

 

يتم الإتصال بالapi وإرسال الأجوبة من الjavascript.

 

أريد التحقق من وجود ملف في كل object ونقل الملف إلى السيرفر بإستخدام laravel. لأنه لا يجوز هنا استخدام

()request->hasFile$

تم التعديل في بواسطة محمود رضا موسى
خطأ إملائي
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

هل جربت تشفير هاته الملفات باستعمال base64 لنقلها كسلاسل نصية عادية؟ اذ سيمكن حقن هاته الملفات كسلاسل base64 ضمن الكائن الخاص بك بشكل عادي جدا. ومن ثم سيمكن نقله الى الخادم الذي سيتولى عملية الغاء التشفير بشكل منفصل ومستقل تماما (رغم انه يمكن تخزين هاته السلاسل الناتجة الا انه لا يعد تطبيقا جيدا). 

أظن انها افضل مقاربة للتعامل مع هذا النوع من الكائنات. صادفنا قبل مدة ليست بالكثيرة احد المشاكل المشابهة التي وجدنا فيها هذا الحل كعملي جدا. خصوصا وانه لا يمكن انشاء nested data forms لارسالها للخادم إلا بشكل يتلاعب كثيرا بهيكلة النموذج الذي نتعامل معه.

ملخص العملية:

  • عند رفع ملف ما، يتم تشفيره الى سلسلة base64 على جانب العميل.
  • يتم حقن ناتج التشفير في الكائن المراد ارساله للخادم
  • يستقبل الخادم الكائن كمصفوفة multi dimensional
  • عن طريق المرور على عناصر هاته المصفوفة يقوم بالغاء تشفير هاته السلاسل اما كملفات او كصور ويقوم بحفظها الى قرص التخزين.
  • تحقن مسارات الملفات الى قرص التخزين مكان السلاسل المشفرة

الناتج: 

  • نقل سليم للملفات دون تجاوز هيكلة الكائن او طريقة ارساله.
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

وعليكم السلام محمود رضا موسى

صديقي العزيز يمكنك التحقق من وجود الملفات وذلك بفحص ال object file اذا كان فارغا اما لا اي Null 

فاذا كانت القيمة ليس فارغة اي هناك صورة او ملف

و باستخدام ajax يمكنك ارسال القيمة الصورة الى السيرفر و تخزينها على السيرفر الخاص بك

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...