Symfony 4 & Postman الوصول إلى الملف من طلب ما بعد البيانات

0

أحاول القيام بتحميل صورة باستخدام واجهة برمجة تطبيقات Symfony REST.

ومع ذلك ، أواجه مشكلات في محاولة قراءة معلمة ملف طلب POST على جانب Symfony باستخدام Postman.

في Postman لدي الهيئة التالية في طلب ما بعد:

طلب مشاركة بيانات النموذج مع key=file و value=some image

عندما يصل الطلب إلى Symfony ، لدي ما يلي:

public function uploadImage(Request $request)
{
    $params = $request->request;

    $file = $params->get('image');
    dump($file);

    ...
}

ال file المتغير هو null . لقد حاولت أيضا استخدام $params = $request->files ولكن النتيجة واحدة.

إذا كنت تفريغ $request->getContent() يمكنني رؤية الملف يمر ، ولكن لا يمكنني الوصول إليه للقيام بما أحتاج إليه.

هل فاتني شيء؟

2 الاجابة

1
افضل جواب

تمكنت من معرفة ذلك ، وله علاقة بتطبيق Postman الذي أستخدمه.

في الأساس ، عندما أختار form-data في الجسم ، لا يتم تحديث علامة التبويب الرؤوس تلقائيًا إلى شيء مثل Content-Type => multipart/form-data ، فهي تحتفظ فقط بالمادة السابقة التي كانت موجودة فيها (application / json ، على سبيل المثال).

عندما اكتشفت ذلك ، قمت بتغيير نوع المحتوى إلى بيانات متعددة الأجزاء / النماذج لكنها كانت لا تزال لا تعمل.

لقد نجحت فقط عندما ألغيت تحديد نوع المحتوى على الرؤوس.

لماذا هذا؟ كنت في عداد المفقودين boundary جزء من نوع المحتوى ، الذي يقوم Postman بإنشائه تلقائيًا عندما يكون النص عبارة عن بيانات نموذج ولا يتم إنشاء رأس نوع المحتوى.

وبالتالي،

نوع المحتوى = multipart / form-data -> لا يعمل

نوع المحتوى = بيانات متعددة الأجزاء / نماذج ؛ الحد = ---- WebKitFormBoundary5Qa5cbeHtIOCMAKa -> يعمل بشكل جيد (لا تحتاج إلى تحديد ذلك ، لأن Postman سيقدم طلبًا مع هذه المجموعة)

:مؤلف
0

أعتقد أن ما يجب عليك استخدامه $request->files->get('file');

:مؤلف
فوق
قائمة طعام