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 بعد اختيار المستخدم للملف الذي يريد تحميله ، و ضغطه على زر "تحميل" ؟
السكريبت script في هذه الحالة سيختبر الملف ، إذا تم نسخه بشكل صحيح فيسيتم طبـاعة "تم تحميل الملف بنجاح" ، أما إذا لم يتم نسخه بشكل صحيح ستظهر الرسالة "لم تختر الملف بشكل صحيح" ، السبب في الخطأ يعود ربما لخطأ في اختيار الملف المراد تحميله أو من هذا القبيل .
لعمل ذلك سنحتاج الى وضع متغيّر بإسم result$ و نسند له عبارة "تم تحميل الملف بنجاح" ، دون أن نطبع هالرسالة .
رمز PHP:
<code style="white-space:nowrap"> <code> <?
$result = "تم تحميل الملف بنجاح !!";
?> </code> </code>
بعد ذلك نحاول رفع الملف ، إذا تم رفعه بنجاح ستبقى قيمة result$ كما هي ، وإذا كان مشكلة في عملية النسخ سنقوم بتغيير قيمة المتغير result$ لتكون : "لم تختر الملف بشكل صحيح" ، الدالّة التي سنستخدمها لرفع الملفات هي 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)©
سلام عليكم
مقدمة
طبعا سكريبت 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 بعد اختيار المستخدم للملف الذي يريد تحميله ، و ضغطه على زر "تحميل" ؟
السكريبت script في هذه الحالة سيختبر الملف ، إذا تم نسخه بشكل صحيح فيسيتم طبـاعة "تم تحميل الملف بنجاح" ، أما إذا لم يتم نسخه بشكل صحيح ستظهر الرسالة "لم تختر الملف بشكل صحيح" ، السبب في الخطأ يعود ربما لخطأ في اختيار الملف المراد تحميله أو من هذا القبيل .
لعمل ذلك سنحتاج الى وضع متغيّر بإسم result$ و نسند له عبارة "تم تحميل الملف بنجاح" ، دون أن نطبع هالرسالة .
رمز PHP:
<code style="white-space:nowrap"> <code> <?
$result = "تم تحميل الملف بنجاح !!";
?> </code> </code>
بعد ذلك نحاول رفع الملف ، إذا تم رفعه بنجاح ستبقى قيمة result$ كما هي ، وإذا كان مشكلة في عملية النسخ سنقوم بتغيير قيمة المتغير result$ لتكون : "لم تختر الملف بشكل صحيح" ، الدالّة التي سنستخدمها لرفع الملفات هي 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)©