من المعروف أن العديد من المطورين يجدون صعوبة في التعامل مع الآداة الخاصة برفع الملفات، فهي تقبل رفع ملف واحد في كل مرة، ولا تستطيع إسناد لها قيمة عن طريق الكود، ولإضافة عدد من الملفات لابد من إضافة آداة لكل ملف.
هناك العديد من الأدوات متوفر في السوق لحل هذه المشاكل، ولكن بعضها يحتاج إلى تنزيل أكتيف إكس في جهاز المستخدم وهي طبعا أدوات ليست مجانية.
الآداة المتوفر لدينا هنا تحل المشاكل الخاصة بتحميل عدد من الملفات في نفس الوقت، فهي آداة واحدة وتستطيع تحديد عدد الملفات المراد تحميلها عن طريق إضافة قيمة للخانة FileNumber وبعدها تستطيع تحميل العدد المحدد للسيرفر.
في الواقع هذه الآداة تقوم بتحميل عدد من HtmlInputFile في الخلفية دون أن تظهر للمستخدم، ودون أن تشوه المنظر العام للتصميم، فالأداة بها كود جافا سكريبت لإخفاء الأدوات وإظهارها طبقا لإحتياج المستخدم
يمكن استخدام الكود التالي مع الآداة لتأكد من حجم الملفات، ونوعها وتحميلها على السيرفر، الأداة هنا تقبل صور امتداد JPG & GIF
هنا المصدر الأصلي للموضوع، وتستطيع من خلاله تحميل الآداة ورؤية الآداة على الطبيعة
for(int i = 0; i < Request.Files.Count ; i++)
{
int fileNamePos = Request.Files.FileName.LastIndexOf("\\") + 1;
string fileName = Request.Files.FileName.Substring(fileNamePos);
ext = fileName.Substring(fileName.Length - 3);
if ((ext.ToLower() == "jpg") || (ext.ToLower() == "gif"))
{
if (Request.Files.ContentLength < 180000)
{
Request.Files.SaveAs(Server.MapPath("~/files/" + fileName));
bd.Append("files/" + fileName + "<br>");
this.Label2.Text = bd.ToString();
this.Label2.Visible = true;
}
else
{
this.errorLbl.Text = "The file " + fileName + " is too big";
this.errorLbl.Visible = true;
}
}
else
{
this.errorLbl.Text = "Only image forat allowed";
this.errorLbl.Visible = true;
}
}