بعدما تعرفتم البارحة على برنامج رفع الملفات على موقع الرفع الشهير Zshare اليوم إن شاء اللهسنقوم بشرح السورس كود خطوة خطوةأولاً لصناعة مثل هذه البرامج يجب الإلمام أولا بلغات برمجة المواقع HTML , PHP إلى غير ذلكالمهم درسنا سيكون خفيف وسهل الهضم على كل الأعضاء إن شاء الله وأي إستفسار أنا هنا دائماً لنبدأ الدرس ....اولا نذخل إلى موقع الـرفع Zshare.netحتى نتمكن من أخذ المعلومات التي ستساعدنا على برمجة Uploader خاص بالموقعبعد الدخول للموقع سنقوم بإستدعاء سورس الصفحة كما في الصورةبعد الضغط على سورس Source نقوم بالضغط على CTRL+F من أجل البحث عن الكلمة المفتاح
لعمل الـ Uploader وهي multipart/form-data كما هو ظاهر في الصورة
بعد إيجادها ننزل قليلا للاسفل لكي تظهر جميع المعلومات التي ستساعدنا في العمل
وها هي في الصور عليها دائرة سوداء
وكما نرى الأشياء المهم أولا هي POST و action و name في الأسفل
- POST تعني بأننا سنستعمل الـخاصية Post للـ idhttp من أجل الحصول على المعلومات التي يرسلها
سيرفر الموقع
- action وهي العملية التي ترسل معلومات كإسم الملف وحجمه والـ ip الذي أرسل منه الملف إلى الموقع التالي
DL049.ZSHARE.NET في هذه الحالة
- name وهو إسم الخاصية التي تمكننا من إختيار أي ملف من حاسوبنا من أجل رفعه Browse
توجد معلومات أخرى ولكنني لا أريد التطرق لها كحجم الملف المسموح به ويكون بالبايت وأشياء من هذا القبيل
--------------------------
ننتقل الآن إلى الجانب البرمجي
---------------------------
أولا نقوم بإضافة الـ unit التالية في Uses
كما توضح الصورة
idAntifreeze من أجل تخفيف رفع الملف و idhttp من أجل إرسال خاصية post و idmultiplatformdata
من أجل التعامل مع الإبلود ( الكلمة التي بحثنا عنها في السورس إذا لم تكن هذه الكلمة في السورس فلايمكننا إستعمال هذه الـ unit)
زر browse يحتوي على دالة شرطية if ..then
تخبرنا ما إذا كان قد تم تحديد ملف أو لم يتم تحديده إذا تم تحديده فيقوم بإضهاره في الـ edit1
إذا لم يتم إختيار الملف يظهر لنا رسالة مفادها أنه لم يتم إختيار أي ملف
أما الزر Upload File وهو المهم
قمنا بالتصريح عن Tidmultipartformdatastream من أجل التعامل مع الإبلود و TStringList
الذي سيحمل المعلومات المستقبلة من السرفر بعد القيام بعملية POST
وصرحنا أيضا عن متغير integer و سلسلتين حرفيتين string
-
أولا قمنا بإعطاء السلسلة الحرفية s القيمة التي تظهر في الصورة #6666 ...
-
السطر الثاني قمنا بتصغير البرنامج minimize حتى لا نقوم بإثقال الحاسوب بعد الإنتهاء من العملية سيظهر تلقائيا
- السطر الثالث تشغيل idhttp
-
السطر الرابع قمنا بإنشاء الـ TSTRingList
-
السطر الخامس قمنا بإنشاء الّـ Tidmultipart...
-
السطر السادس قمنا بإضافة مسار الملف الذي سيتم رفعه
وبرامترات هذه الدالة إسم الملف الذي يقوم بالإبلود في السرفر ( ولقد قمنا بإستخراجها من سورس الموقع file )
البرامتر الثاني هو مسار الملف الموجود في الحاسوب نضع هنا edit1 لأنها تحتوي على المسار
البرامتر الثالث وهو نوع الملف المراد رفعه هنا لا نعرف النوع هل هو برنامج أو صورة أو ,,, لذلك نضعه فارغ ''
-
السطر السابع قمنا بإستداء دالة post ووضعنا الناتج في Source الذي هو من نوع TStringlist
هذا الناتج مهم فرابط التحميل يكون متضمناً معه ( لمن أراد إضهاره يقوم بإضافة مكون Memo ) ويضيف السطر التالي
memo1.lines:=soucre
لتظهر تلك الملعومات
بعد ما أصبح source يحتوي الآن على المعلومات
نقوم بالبحث عن الرابط
سنجد بأن الرابط يوجد مباشرة بعد السلسلة الحرفية s التي فيها #6666
سنقوم بإستخراجها إذن
-
السطر الثامن نقوم بتحديد مكان السلسلة الحرفية s
السطر التاسع نستدعي الدالة Copy من أجل قطع الرابط ووضعه في السلسة الحرفية link
-
السطر العاشر نظهر السلسلة الحرفية link في الـ edit2
-
السطر الحادي عشر نعيد إظهار الفورم كما كان في السابق ونقوم بتحرير الـ MPDAta
لقد نسيت تحرير source في برنامجي يجب تحريره كي لا نؤثر على الـذاكرة للحاسوب
----------------------------
أما الزر Copy url فهو يقوم بتظليل الـ edit2 ومن ثم نسخها
--------------------
البرنامج + الكود سورس
http://www.fileden.com/files/2008/6/3/1943207/Zshare.net%20Uploader.rar OR
رابط الميديا فايدر http://www.mediafire.com/?qjg87zqdx9df8ok أرجو أن يكون الشرح مفهوم
تحميل الموضوع على شكل ملف pdfhttp://www.zshare.net/download/99056226411bb8ad/