سؤال

أريد أن أتلقى ما يلي HTTP طلب في PHP:

Content-type: multipart/form-data;boundary=main_boundary

--main_boundary
Content-type: text/xml
<?xml version='1.0'?>
<content>
Some content goes here
</content>

--main_boundary
Content-type: multipart/mixed;boundary=sub_boundary

  --sub_boundary
  Content-type: application/octet-stream

  File A contents

  --sub_boundary
  Content-type: application/octet-stream

  File B contents

  --sub_boundary

--main_boundary--

(ملحوظة:لقد قمت بوضع مسافة بادئة للأجزاء الفرعية فقط لجعلها أكثر قابلية للقراءة لهذه المشاركة.)

أنا لا أتقن لغة PHP وأرغب في الحصول على بعض المساعدة/المؤشرات لمعرفة كيفية تلقي هذا النوع من طلبات النماذج متعددة الأجزاء في كود PHP.لقد كتبت ذات مرة بعض التعليمات البرمجية حيث تلقيت نموذج HTML قياسيًا ثم تمكنت من الوصول إلى عناصر النموذج باستخدام اسمها كمفتاح فهرس في $HTTP_GET_VARS صفيف، ولكن في هذه الحالة لا توجد أسماء عناصر النموذج، وأجزاء بيانات النموذج ليست خطية (أي.الأجزاء الفرعية = صفيف متعدد المستويات).

ممتنة لأية مساعدة!

/ روبرت

هل كانت مفيدة؟

المحلول

$HTTP_GET_VARS, $HTTP_POST_VARS, ، إلخ.هو تدوين عفا عليه الزمن، يجب أن تستخدم $_GET, $_POST, ، إلخ.

الآن يجب أن تكون محتويات الملف في $_FILES مصفوفة عامة، بينما إذا لم تكن هناك أسماء عناصر، فأنا لست متأكدًا مما إذا كان باقي المحتوى سيظهر في $_POST.على أية حال، إذا always_populate_raw_post_data الإعداد صحيح في php.ini, ، يجب أن تكون البيانات موجودة $HTTP_RAW_POST_DATA.كما يجب أن يظهر الطلب كاملاً عند القراءة فب://الإدخال.

نصائح أخرى

يجب عليك ملاحظة:

"php://input يسمح لك بقراءة بيانات POST الأولية.إنه بديل أقل استهلاكًا للذاكرة لـ $HTTP_RAW_POST_DATA ولا يحتاج إلى أي توجيهات خاصة لـ php.ini.php://input غير متوفر مع enctype=”multipart/form-data”

من دليل PHP...لذلك يبدو أن php://input غير متوفر

لا أستطيع التعليق بعد ولكن المقصود من هذا هو استكمال إجابة pilsetnieks

سيتم الوصول إلى الملفات التي تم تحميلها من خلال المتغير العام $_FILE، وسيتم الوصول إلى المعلمات الأخرى من خلال المتغير العام $_GET.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top