इस कोड को जब यह गैर रिक्त फ़ाइल फेंकनेforeach पाश कास्ट करने के लिए, लेकिन मैनुअल कास्टिंग और पाश काम के लिए
प्रकार के 'System.String' ऑब्जेक्ट कास्ट करने में असमर्थ पाता है काम नहीं करता है विफल रहता है 'System.Web.HttpPostedFile' टाइप करने के लिए।
foreach (System.Web.HttpPostedFile f in Request.Files)
{
if (f.ContentLength > 0 && f.FileName.EndsWith(".pdf"))
{
//work done here
}
}
इसके अलावा, मैं Request.Files
सरणी एक मैन्युअल रूप से (प्रत्येक सूचकांक के साथ) के रूप में नीचे डिबग मोड में casted जा सकती है
?(System.Web.HttpPostedFile)Request.Files[index]
{System.Web.HttpPostedFile}
ContentLength: 536073
ContentType: "application/pdf"
FileName: "E:\\2.pdf"
InputStream: {System.Web.HttpInputStream}
हालांकि, बाद कोड काम करता है
for (index = 0; index < Request.Files.Count; index++)
{
System.Web.HttpPostedFile f = Request.Files[index];
if (f.ContentLength > 0 && f.FileName.EndsWith(".pdf"))
{
//work done here
}
}
में प्रत्येक आइटम का परीक्षण किया कोई विचार क्या गलत हो रहा है? धन्यवाद
नोट: यदि यह * जेनेरिक संस्करण ('IEnumerable') था, तो एक अच्छा मौका है कि संकलक ने आपको यह त्रुटि करने से रोका होगा; हालांकि, मुझे लगता है कि 'HttpFileCollection' प्री-डेट जेनेरिक। –
फिर यह क्यों विफल रहता है जब फ़ाइल खाली नहीं होती है? पूर्व; अगर Request.Files [0] खाली है तो यह असफल नहीं होता है और अगले के माध्यम से जाता है और यदि अनुरोध। फ़ाइल [1] खाली नहीं है तो यह विफल हो जाता है।(या जब तक यह एक खाली आइटम नहीं मिलता है तब तक यह ठीक हो जाता है) – Kaf
@ कैफ अगर कोई फाइल नहीं है, तो लूप करने के लिए कुछ भी नहीं है, इसलिए कोई असफल रूपांतरण नहीं है। अन्य समाचारों में, आप एक खाली 'int [] 'पर फिर से सक्रिय कर सकते हैं और प्रत्येक' int '(उनमें से कोई भी नहीं) को' SqlConnection' में परिवर्तित कर सकते हैं और इसकी परवाह नहीं होगी: क्योंकि * लूप पर कुछ भी नहीं है * । –