أخوانى الكرام
فى كثير من المواقع التى نتعامل معاها نرا روابط امكانية تحميل ملف ما وعند الضغط عليها نقوم بعميلة تحميل الملف وهى امكانية تحميل الملفات من ويب سيرفر الى جهاز المستخدم
كيف يمكننا عمل ذلك عن طريق ASP.net واللغة السى شارب ؟؟
هذه من أكثر الطرق الاحترافية لتنزيل الملفات ومنها تستطيع التحكم في كل شيء:
1- سرعة تنزيل الملفات
2- مراقبة ما يمكن العميل تنزيله وما لا يمكنه
3- ضبط السيكيوريتي والمساحات المتاحة لكل مستخدم والوقت -مثل موقع رابدشير مثلاً
وذلك عن طريق أنشاء صفحة (Generic Handler) تعطيها على سبيل المثال رقم الملف أو اسمه ومن ثم ستقوم بارسال الملف الى المستخدم مثال :
كود PHP:
http://www.localhost/Website1/files.ashx?File=file1.zip
حيث ان شيفرة الصفحة السابقة تختلف عن شيفرة صفحة asp.net . حيث أن الملف files.ashx يجب أن يحتوي على المنهج ProcessRequest الذي سيقوم بارسال الملف الى المستخدم . مثال للملف files.ashx
كود PHP:
<%@ WebHandler Language="C#" Class="Files" %>
using System;
using System.Web;
using System.Web.Security;
public Class Files : IHttpHandler {
public void ProcessRequest (HttpContext context) {
//يمكنك اضافة كود للسماح للمستخدمين المسجلين فقط تحميل الملف على سبيل المثال
if (!HttpContext.Current.User.Identity.IsAuthenticated)
FormsAuthentication.RedirectToLoginPage();
string fileName = HttpContext.Current.Request.QueryString["File"];
context.Response.WriteFile("~/Files/" + fileName);
}
public bool IsReusable {
get {
return false;
}
}
}