اذهب إلى المحتوى

mohamd emran

الأعضاء
  • المساهمات

    9
  • تاريخ الانضمام

  • تاريخ آخر زيارة

أجوبة بواسطة mohamd emran

  1. الاجابة على السؤال الاول هي بالطبع تقوم بعمل مجلد لوضع الملفات المحملة فيه , 
    الاجابة على السؤال التاني مع امثلة واي تفاصيل اخرى تحتاجها ,قمت بكتابتها لك 
    طريقة رفع الملفات في ال asp.net
    والتحقق من الانواع والحجم واي تفاصيل اخرى

    الادوات المستخدمه هي اداة
    FileUpload1
    وادارة زر Button

    نقوم بوضع الاداتين في الصفحة وبعد هذا داخل حدث النقر على الزر button
    نقوم بكتابة الكود الخاص بعملية رفع الملف الذي تم اختيار من الاداة FileUpload1
    في داخل مجلد فرعي في مجلد المشروع الرئيسي

    لنفرض ان الاسم البرمجي للادة FileUpload1 هو UpImg

    في البداية نتحقق من ان المستخدم قد قام بختيار ملف لرفعه
     

    كود:

    If UpImg.PostedFile.FileName = Nothing Then ErrorLabel.Text = "لم يتم اختيار ملف لرفعه" Exit Sub End If

    في حالة لم يتم اختيار ملف لرفعه في داخل الاداة UpImg سوف نطبع له في داخل اداة ليبل سميناها ErrorLabel راسلة تقول انه لم يتم اختيار ملف لرفعه وبعد هذا نخرجه من تنفيذ بقية الكود المكتوب في حدث النقر على زر التحميل

    اذا قام المستخدم باختيار ملف لتحميله في داخل اداة اختيار الملفات فان الجملة الشرطيه اعلاه لن تتحقق وبالتالي فانه لن يدخل لكود الجملة الشرطيه ولن يقوم بطباعة رسالة الخطأ ولن يقوم باخراجه من تنفيذ بقية الكود ,,, يعني سوف يستمر في تنفيذ الكود

    الان نقوم بتعريف متغير نسند له المسار الذي سوف يتم تخزين الملف المختار لرفعه فيه مثلا هكذا
     

    كود:

    Dim FPath As String ="C:\Inetpub\wwwroot\ElectronicMall1.0\uploaded\" & IO.Path.GetFileName(UpImg.PostedFile.FileName)

    في البداية قمنا باسناد المسار كامل للمجلد الذي سوف نقوم برفع الملف داخله وهو
    C:\Inetpub\wwwroot\ElectronicMall1.0\uploaded\
    حيث ان ElectronicMall1.0 هذا هو مجلد المشروع الرئيسي
    و uploaded هذا هو اسم المجلد الفرعي الذي سوف نضع فيه الملف

    بعد ذلك اسندنا للمتغير اسم الملف الذي يتم اختياره من اداة رفع الملفات UpImg بالكامل يعني الاسم مع الامتداد فلو قمت باختيار صورة اسمها pic1.gif

    فان النص الكامل الذي سيتم اسناده للمتغير FPath سيكون بالشكل التالي
    C:\Inetpub\wwwroot\ElectronicMall1.0\uploaded\pic1.gif

    وهذا يعبر عن مسار الملف الذي سوف نقوم برفعه بعد انتهاء عملية الرفع ووضع الملف في داخل المجلد

    نتوقف قليل عند المكتبة IO وتلاحظ اننا في الكود السابق استخدمناها في جلب اسم وامتداد الملف الذي تم اختيارة في اداة رفع الملفات
    وهذه مكتبة كامله تتيح لك التحكم بالملفات والمجلدات

    في كودنا السابق نلاحظ اننا طلبنا اسم الملف الكامل مع الامتداد للملف الموجود بهذا المسار
    UpImg.PostedFile.FileName
    وهذه تعيد لنا المسار الكامل للملف الذي تم اختياره من جهازك
    فمثلا لو اخترنا من الجهاز ملف pic1.gif
    موجود في الدرايف E مباشرة
    فان المسار الذي سوف يعود في داخل UpImg.PostedFile.FileName
    هو E:\pic1.gif

    وباستخدام مكتبة ال IO سوف نقوم بجلب اسم الملف الكامل مع الامتداد للمسار E:\pic1.gif
    وبالتالي سوف يعود لنا ب pic1.gif
    وهذا مافعلناه بالكود
     

    كود:

    Dim FPath As String ="C:\Inetpub\wwwroot\ElectronicMall1.0\uploaded\" & IO.Path.GetFileName(UpImg.PostedFile.FileName)

    مكتبة ال IO يمكنك فعل امور كثيره اخرى بها غير جلب اسم الملف وامتداده حيث يمكنك بواسطتها انشاء ملفات او مجلدات او حذف او تغيير اسمائها وكذلك فتح ملفات لقرائتها والكتابة فيها وغيرها من كل مايخطر ببالك من امور التعامل مع الملفات والمجلدات وهنا سوف نستخدم مانحن بحاجة له في عملية الرفع ونترك لك استكشاف باقي امكانيات المكتبة بنفسك

    بعد جلب اسم الملف وامتداده نريد التأكد من امرين

    1- ان الملف ضمن الامتدادت المسموح برفعها
    2- ان الملف ضمن الحجم المسموح رفعه

    للتأكد من امتداد الملف نستخدم مكتبة ال IO

    الكود التالي سوف يعيد لنا امتداد الملف فقط بدون اسمه مثلا لو كان اسم الملف هو pic1.gif
    فان الكود التالي سوف يعيد لنا الامتداد او نوع الملف فقط هكذا .gif
     

    كود:

    IO.Path.GetExtension(FPath)

    الان يمكننا التحقق من نوع الملف المرفعه بكل اريحيه مثلا نقوم بتخزين امتداد ونوع الملف في متغير نسمية FEx ونقوم بالمقارنه بين الانواع المطلوبة فاذا لم يكن نوع الملف من بين الانواع المسموح رفعها نقوم باخراج رسالة عدم السماح برفع هذا النوع واخراجه من تنفيذ الكود على سبيل المثال
     

    كود:

    If FEx <> ".gif" Or FEx <> ".GIF" Then ErrorLabel.Text = "نوع الملف الذي تم اختياره غير مسموح به" Exit Sub End If


    الان نريد التأكد من حجم الملف ان كان ضمن الحجم المسموح برفعه والكود التالي سوف يعود لنا يحجم الملف المختار بالبايت
     

    كود:

    upimg.PostedFile.InputStream.Length

    نقوم الان بالتحقق من حجم الملف بالشكال التالي مثلا
     

    كود:

    If UpImg.PostedFile.InputStream.Length > 307200 Then ErrorLabel.Text = "حجم الملف اكبر من الحجم المسموح به" Exit Sub End If

    وهنا منعنا تحميل اي ملف حجمه اكبر من 300 كيلو بايت


    الان نريد التأكد من ان اسم الملف المرفوع غير موجود من قبل في داخل المجلد الذي سوف نقوم برفع الملف داخله لكي لا يحدث تعارض بالاسماء
    ففي حالة كان الاسم موجود من قبل نقوم بمنع تحميل الملف ونخرج له رسالة تخبره بان الاسم موجود من قبل

    الكود التالي سوف يعود لنا بصح او خطأ
     

    كود:

    IO.File.Exists(FPath)

    في حالة كان المشار FPath موجود في الموقع من قبل وهو مسار مجلد الملفات مضاف له اسم الملف مع امتداده فسوف يعود بصح True
    وان كان غير موجود فسوف يعود بخطأ False

    نستخدمه في جملة شرطيه للتحقق من وجود اسم الملف او عدم بالشكل التالي مثلا
     

    كود:

    If IO.File.Exists(FPath) = True Then ErrorLabel.Text = "اسم الملف موجود من قبل ,قم بتغيير اسم الملف" Exit Sub End If


    الان العملية الاخيره هي عملية رفع الملف وتخزينه في داخل مجلد رفع الملفات

    وهذا يتم بالكود التالي
     

    كود:

    UpImg.PostedFile.SaveAs(FPath)

    بتنفيذ هذا الكود سوف يقوم برفع الملف المختار من الجهاز وتخزينه في داخل المسار الموجود في المتغير FPath


    ملاحظة اخيره :-
    هذا هو المبدأ العام وانت يمكنك باستخدام مكتبة ال IO التحقق من امور اكثر من اسم الملف او نوعه وحجمه  ساترك لك اكتشافها بنفسك على حسب حاجتك . 

    اتمنى انا اكون قد فدتك .

  2. اخي الكريم , طريقة رفع الحظر عن طريق ارسال الهوية , هاد الطريقة قديمة وغير عمليه يمكنك ذلك عن طريق التعديل في ال value  الخاصة برفعة البطاقة وتخطيها وفتح الحساب , متل ما انا عملت لفتح حسابي ويعمل حاليا على اكمل وجه ,ويكنك مراسلتي 
    لمحاولة اصلاحه لك .

    • أعجبني 1
×
×
  • أضف...