المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [ برمجة ] سكربت مركز تحميل الملفات



admin
11-01-2013, بتوقيت غرينيتش 01:11 PM
http://www.dzbatna.com/images/icons/iconrote.gif [ ط¨ط±ظ…ط¬ط© ] ط³ظƒط±ط¨طھ ظ…ط±ظƒط² طھط*ظ…ظٹظ„ ط§ظ„ظ…ظ„ظپط§طھ (http://www.dzbatna.com/t116749/)



سلام عليكم

مقدمة
طبعا سكريبت script الـ Upload هذا بسيط لدرجة أنه لا يحتوي على أي مميزات غير الـ Upload ، و لا يحتوي حتى على واجهة interface أو تصميم ، لأن الغرض منه تعليمي فقط .. و تستطيع تطوير السكريبت script كما تشاء ..

بعد هذه المقدمة أقول :
أننا سوف ننشئ ملفّين ، أحدهما هو ملف الكونفيق ( Config.php ) و الآخر هو ملف الأبلود ( Upload.php ).

ملف الكونفيق سيحتوي فقط على المسار الذي سنرفع ملفاتنا إليه ( بمعنى أنه سيكون سطر واحد فقط ، اذا استثنينا وسمي <? و ?> .. )

قد يتساءل احدكم لماذا لا نستغني عن ملف الكونفيق و نضع المسار في نفس ملف upload.php ..
الإجابة هي : لأننا سنطوّر السكريبت script مستقبلاً بحيث يحتوي على مميزات كثيرة مثل : تخصيص حجم و نوع الملفات المراد رفعها ، إلخ ..

حالياً هذا شكل ملف الكونفيق :
رمز PHP:

<code style="white-space:nowrap"> <code> <?
$path = "C:\lahloob";
// اخترت رفع الملف إلى مجلد لهلوب في السي
?> </code> </code>






ملف الـ upload.php سيحتوي على ما يلي :
1 ) وسم بداية كود code الـ PHP .
2) استدعاء ملف الكونفيق اللي يحتوي المسار

رمز PHP:

<code style="white-space:nowrap"> <code> <?
include "config.php";
?> </code> </code>



3) إدراج النموذج (الفورم) الخاص باستعراض الملفات لتحميلها و أيضاً نحتاج إلى زر خاص بالتحميل كما يلي :

رمز PHP:

<code style="white-space:nowrap"> <code> <?
echo "<form method=\"POST\"
action=\"$PHP_SELF?upload=uploading\"
enctype=\"multipart/form-data\">
<input type=file name=file size=30><br><br>
<button name=\"submit\" type=\"submit\">
تحميل</button></form>";
?> </code> </code>



طبعاً في هذا الجزء من الكود code بعض الغوض ، لذا سأشرح طريقةه .
إستخدمنا المتغيّر PHP_SELF$ ، و هذا المتغيّر مبني داخل لغة PHP ووظيفته إرجـاع رابط السكريبت script الحالي . إذن نحن في خانة الـ action سنقوم باسترجـاع الرابط الحالي الذي نعمل عليه ثم نضيف إليه upload=uploading؟ .
حيث أن upload و uploading متغيّرات عادية سأقوم بتعريفها لاحقاً .

لاحظوا إننا في هذا النموذج عرّفنا المتغيّرات التالية :
upload -- uploading -- file

الخطوات التـالية

4) الآن نصل إلى نقطة هامة و هي ما ذا يجب أن يفعل السكريبت script بعد اختيار المستخدم للملف الذي يريد تحميله ، و ضغطه على زر &quot;تحميل&quot; ؟

السكريبت script في هذه الحالة سيختبر الملف ، إذا تم نسخه بشكل صحيح فيسيتم طبـاعة &quot;تم تحميل الملف بنجاح&quot; ، أما إذا لم يتم نسخه بشكل صحيح ستظهر الرسالة &quot;لم تختر الملف بشكل صحيح&quot; ، السبب في الخطأ يعود ربما لخطأ في اختيار الملف المراد تحميله أو من هذا القبيل .

لعمل ذلك سنحتاج الى وضع متغيّر بإسم result$ و نسند له عبارة &quot;تم تحميل الملف بنجاح&quot; ، دون أن نطبع هالرسالة .

رمز PHP:

<code style="white-space:nowrap"> <code> <?
$result = "تم تحميل الملف بنجاح !!";
?> </code> </code>



بعد ذلك نحاول رفع الملف ، إذا تم رفعه بنجاح ستبقى قيمة result$ كما هي ، وإذا كان مشكلة في عملية النسخ سنقوم بتغيير قيمة المتغير result$ لتكون : &quot;لم تختر الملف بشكل صحيح&quot; ، الدالّة التي سنستخدمها لرفع الملفات هي copy و سنضيف قبلها علامة @ لكي نتفادى رسائل التحذير ..

رمز PHP:

<code style="white-space:nowrap"> <code> <?
@copy($file, "$path/$file_name")
or $result ="لم تختر الملف بشكل صحيح";
?> </code> </code>



كما تلاحظون فدالة الـ copy تاخذ اسم الملف ، الذي عرفناه في النموذج العلوي -- و تاخذ أيضا مسار الملف .
file$ ---> قمنا بتعريفه في النموذج الأول .
path$---> مسار الملف ، و حددناه في الكونفيق .
file_name$ --> هذا المتغيّر يتم إنشاؤه بشكل تلقائي و يحمل اسم الملف الذي نريد نرفعه .

الآن نطبع قيمة result$ و هي إما نجاح عملية التحميل أو فشلها كما يلي :

رمز PHP:

<code style="white-space:nowrap"> <code> <?
echo "$result";
?> </code> </code>



5) نغلق الوسم الخاص بالسكريبت script .

الآن السكريبت script جاهز ، لكنه يحتوي على مشكلة بدائيّة ، و هي أنه في حالة إما نجاح أو فشل التحميل ، فسوف تظهر نفس الصفحة التي تطلب اختيار الملف المراد تحميله ، و زر التحميل ، و تحت النموذج ستشاهد عبارة النجاح أو الفشل. المطلوب الآن إننا فقط نعرض عبارة نجاح أو فشل دون عرض الفورم الخاص بالتحميل .

لعمل ذلك نحتاج إلى أداة الشرط switch ، نتأكد من خلالها أن المستخدم قد ضغط على زر التحميل ( يعني إن upload=uploading ) ، في هذه الحالة سنستخدم الخطوات المذكورة في الخطوة 4 ، عدا ذلك لا نستخدمها .

رمز PHP:

<code style="white-space:nowrap"> <code> <?
switch ($upload)
{
default:
// الآن استخدم الخطوات من 1 إلى 3
break; // و تجاهل أي خيار أو شرط آخر switch هذا لقطع الأمر

case "uploading": // upload=uploading يعني إذا
// نفذ الخطوة 4
break;
}
// الآن نستخدم الخطوة 5
?> </code> </code>




اتنهى الدرس مفصل






ألعاب الأندرويد مجانا و حصريا (http://www.apotox.info/forum)




https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى