التخطي إلى المحتوى
شرح دورة الـ ASP.NET للمبتدئين – الدرس الثلاثون

.. ADO.net ““..

.. Download “..
شرحنا سابقا فى الدرس رقم 16  رفع الملفات الى الموقع 

وفى هذا الدرس سوف نتحدث عن تحميل الملفات بانواعها من خلال الموقع

أولا: انشئ Folder بأسم Download Files وضع بداخله الملفات المراد تحميلها كما بالشكل
*************************************
ثانيا: انشئ صفحة على الموقع باسم download.aspx ونذهب مباشرة الى صفحة الكود وهى 

 download.aspx.cs و نبدأ فى كتابة الكود كالتالى
1- استدعاء المكتبة المسئولة عن التعامل مع الملفات والمجلدات والادخال والاخراج وهى 

// Using Namespace
using System.IO;
 Page_Load2- فى حدث ال  

protected void Page_Load(object sender, EventArgs e)
    {
        DirectoryInfo directory = new DirectoryInfo(Server.MapPath("~/Download Files"));
        // تعريف عداد 
        int counter = 0;
        foreach (FileInfo file in directory.GetFiles())
        {
            //link منه باسم  object جديد مع كل ملف واخدنا  LinkButton  لعمل 
            LinkButton link = new LinkButton();
            //counter اسم مختلف باستخدام ال LinkButton لإعطاء كل 
            link.ID = "Link" + counter++;
            // تحديد النص المكتوب 
            link.Text = file.Name;
            //download1وهنا صفحة اخرى باسم LinkButton الذى سوف ينتقل اليه عند الضغط على URL ضبط ال  
            //QueryString وهنا سوغ ينتقل مع 
            link.PostBackUrl = "download1.aspx?name=" + file.Name;
            // Form فى ال LinkButton يضع الاداة 
            Page.Form.Controls.Add(link);
            // هنا بعطى امر نزول سطر
            Page.Form.Controls.Add(new LiteralControl("
"));
        }
    }

لنتوف مع هذا الكود

1- هى الفئة المسئولة عن التعامل مع المجلدات:DirectoryInfo 
2- FileInfo:هى الفئة المسئولة عن التعامل مع الملفات

فى البداية عرفنا كائن جديد من نوع DirectoryInfo اسمه directory وحددنا مسار المجلد الذى به ملفات التحميل ..ثم استخدمنا foreach للحصول على كل الملفات داخل المجلد باستخدام الداله   ()GetFiles

*************************************

ثالثا: انشئ صفحة على الموقع باسم download1.aspx ونذهب مباشرة الى صفحة الكود وهى 
 download1.aspx.cs و نبدأ فى كتابة الكود كالتالى
 Page_Load1- فى حدث ال  
protected void Page_Load(object sender, EventArgs e)
    {
        //داخل متغير QueryString استقبال 
        string fileName = Request.QueryString["name"].ToString();
        // فى حالة عدم تحديد نوع الملف 
        Response.ContentType = "application/octet-stream";
        // فى حالة تحديد نوع معين من الملفات للتحميل
        // *********** OR ********** //
        //if (fileName.EndsWith(".txt"))
        //{
        //    Response.ContentType = "application/txt";
        //}
        //else if (fileName.EndsWith(".pdf"))
        //{
        //    Response.ContentType = "application/pdf";
        //}
        //else if (fileName.EndsWith(".docx"))
        //{
        //    Response.ContentType = "application/docx";
        //}
        //else
        //{
        //    Response.ContentType = "image/jpg";
        //}
        Response.AddHeader("Content-Disposition", "filename=" + fileName);
        // تحديد المسار واسم الملف المراد تحميلة
        Response.TransmitFile(Server.MapPath("~/Download Files/" + fileName));
        //  إنهاء معالجة الاوامر
        Response.End();
    }
لنتوف مع هذا الكود
1- الكائن Response : مسئول عن إرسال المعلومات من خادم الويب إلى المتصفح في جهاز المستخدم وبإمكانه التحكم بها.
2- الخاصية ContentType :هذه الخاصية تفيد مستعرض الويب في معرفة نوع البيانات التي تحتويها الصفحة لتساعده في عرضها للمستخدم بصورة صحيحة.

3- الدالة AddHeader :هذه الدالة  ترسل معلومات للمستعرض ولكن ترسلها كرؤوس للصفحة  ومن أمثلة هذه المعلومات، معلومات عن تاريخ إنشاء الصفحة واللغة المستخدمة و نوع خادم الويب الذي يعالج الصفحة.

*************************************

رابعا: عند التنفيذ

**************************************
       الى اللقاء فى الدرس القادم …

عن الكاتب

التعليقات

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Shares