طلب ASP.NET - هل يمكنني الحصول على ملف منشور من عنصر تحكم ديناميكي تم إنشاؤه على العميل؟

StackOverflow https://stackoverflow.com/questions/803255

سؤال

لدي عنصر تحكم ويب مع بعض JavaScript المخصص. يقوم JavaScript بإنشاء عناصر تحكم جديدة في تحميل الملفات على العميل ديناميكيًا باستخدام رمز مماثل لـ:

var newFileUpload = document.createElement('input');
newFileUpload.type = 'file';
container.appendChild(newFileUpload); // where container is a div

هذا موجود في نموذج ASP.NET مع تعيين enctype على multipart/form-data. سيكون لدي عناصر تحكم 1 - N على الصفحة (حسنًا ، تقتصر على رقم معقول ، بالطبع).

أرغب الآن في التقاط الملفات التي تم تحميلها في تطبيق ASP.NET الخاص بي. بسبب النهج المذكور أعلاه ، أعلم أنه لا يمكنني التقاطها كما أود من عنصر تحكم fileUpload (الذي لا يمكنني استخدامه للأسف). هل هناك طريقة أخرى لالتقاط الملفات التي تم تحميلها؟

لقد نظرت من خلال عدد من المناطق ، بما في ذلك:

  • request.files
  • نموذج طلب
  • request.form.keys
  • request.InputStream

لكنني لم أتمكن من العثور على المحتوى. أعتقد أن العميل يقوم بتقديم هذه البيانات بشكل صحيح ولكن لم يتمكن من تحديد ما يفعله الخادم بمعلومات طلب RAW (إذا كان هذا مكشوفًا).

هل لدى أي شخص أي اقتراحات بشأن المناطق التي قد أستكشفها أكثر؟

شكرًا

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

المحلول

يجب عليك إضافة ملف اسم فريد إلى عنصر التحميل الخاص بك للحصول عليه من مجموعة request.form.

var newFileUpload = document.createElement('input');
newFileUpload.type = 'file';
//newFileUpload.id = 'file01';
newFileUpload.name = 'file01';
container.appendChild(newFileUpload);

تعديل : لقد جربت المعرف والاسم Attibutes ، مع الاسم ، يمكنك الحصول على المحتوى بواسطة

Request.Form["file01"]

أيضًا إذا كان عليك إضافة السمة أدناه إلى عنصر النموذج الخاص بك. يتيح لك ذلك الحصول على محتوى الملف بواسطة request.files ["file01"]:

enctype="multipart/form-data"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top