موقع نواحي

تعلم كيف تبرمج سكريبت لتحميل الملفات بيدك

إذا كان لديك فكره برمجيه وتريد تطبيقها فلا تتردد فمن هنا ضع فكرتك



موقع نواحي    مكتبة الدروس الدروس    php php    تعلم كيف تبرمج سكريبت لتحميل الملفات بيدك تعلم كيف تبرمج سكريبت لتحميل الملفات بيدك

تعلم كيف تبرمج سكريبت لتحميل الملفات بيدك
عن طريق هذا السكريبت سوف تتمكن من رفع الملفات من جهازك إلى موقعك.

الكود التالي احفظه في ملف (upload.php) أو أي ملف آخر
ثم تأكد من وجود مجلد images في نفس الدليل

<?php
echo "<html dir=rtl>";
//مجلد رفع الملفات
$upload_dir "images/";

             
//51200 bytes = 50KB
$size_bytes 51200//حجم الملف بالبايت

//هل تريد تحميل ملفات من نوع معين yes/no
$extlimit "yes";
//أنواع الملفات المسموحة
$limitedext = array(".gif",".jpg",".png",".jpeg");

          
//يقوم بفحص إذا كان كان مجلد التحميل موجود أم لا
          
if (!is_dir("$upload_dir")) {

         die (
"المجلد <b>($upload_dir)</b> غير موجود!");
          }
          
//يقوم بفحص اذا كان مجلد التحميل قابل للكتابة
          
if (!is_writeable("$upload_dir")){
             die (
"المجلد <b>($upload_dir)</b> غير قابل للكتابة أعطه ترخيص 777");
          }

  if(
$uploadform// اذا تم الضغط على زر حمل الملف
  
{//($uploadform) بداية.


              //فحص اذا تم اختيار ملف.
              
if (!is_uploaded_file($_FILES['filetoupload']['tmp_name']))
              {
                     echo 
"خطأ: لم تقم باختيار ملف";
                     exit(); 
//الخروج من السكربت
              
}

              
//تعريف متغير يحمل حجم  الملف
              
$size $_FILES['filetoupload']['size'];
              
//فحص حجم الملف
              
if ($size $size_bytes)
              {
                    
$kb $size_bytes 1024;
                    echo 
"حجم الملف كبير. يجب أن يكون <b>$kb</b> KB. <br>";
                    exit();
              }

              
//فحص نوع امتداد الملف
              
$ext strrchr($_FILES['filetoupload'][name],'.');
              if ((
$extlimit == "yes") && (!in_array($ext,$limitedext))) {
                    echo(
"امتداد الملف خطأ!");
                    exit();
              }

              
// تعريف متغير يحمل اسم الملف
              
$filename =  $_FILES['filetoupload']['name'];
              
// Check if file is Already EXISTS.
              
if(file_exists($upload_dir.$filename)){
                    echo 
"الملف <b>$filename </b>موجود مسبقا!!!";
                    exit();
              }

              
//الدالة التالية تقوم بنقل الملف من الى السيرفر
              
if (move_uploaded_file($_FILES['filetoupload']['tmp_name'],$upload_dir.$filename)) {

                  
//طباعة رسالة نجاح التحميل
                  
echo "الملف(<a href=$upload_dir$filename>$filename</a>) تم رفعه بنجاح";
                  exit();

              }
                  
// طباعة رسالة خطأ في حالة فشل عملية رفع الملف
                  
else
              {
                  
//رسالة الخطأ
                  
echo "حدث خطأ غير معروف أثناء تحميل الملف، الرجاء المحاولة مرة أخرى.";
                  exit();
              }



  }
//if($uploadform) نهاية.

#---------------------------------------------------------------------------------#
// اذا لم يتم ضغط زر حمل الملف قم باظهار النوذج
else
  {
//else بداية

      
?>
      <br>
      <h3>::استعرض ملف من أجل التحميل:</h3>
      <i>- يمكن رفع أنواع:</i>

        <b>
      
    <?
        
// طباعة امتداد الملف
        
for($i=0;$i<count($limitedext);$i++)

    {

        if ((
$i<>count($limitedext)-1))$commas=", ";else $commas="";

        list(
$key,$value)=each($limitedext);

        echo 
$value.$commas;

    }

    
?>

    </b>

      <br>
      <i>- أقصى حجم للملف هو</i> = <b><?echo $size_bytes 1024?> KB </b>
      <br>
      <form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>">
      <br>
      <input type="file" name="filetoupload"><br>
      <input type="hidden" name="MAX_FILE_SIZE" value="<?echo $size_bytes?>">
      <br>
      <input type="Submit" name="uploadform" value="حمل الملف">
      </form>

      <?

  
}//else نهاية


?>


?>


تم استخدام متغير $_FILES وهو ضمن الاصدار 4 من php فما فوق.

هذه الدالة تعني حجم الملف
$_FILES['upload']['size']

وهذه تحمل اسم الملف المؤقت وقت التحميل
$_FILES['upload']['tmp_name']

وهذه تحمل اسم الملف الفعلي
$_FILES['upload']['name']

وهذه لنوع الملف
$_FILES['upload']['type']


1- (!is_dir("$upload_dir"))

هذه الدالة تقوم بفحص اذا كان المجلد موجود أم لا

2- (!is_writeable("$upload_dir"))

هذه الدالة تقوم بفحص اذا كان المجلد يقبل الكتابة أم لا.

3- (!in_array($ext,$limitedext))) {

هذه الدالة تفحص امتداد الملفات مثل jpg zip exe وغيرها .

4- (file_exists($upload_dir.$filename))

تقوم بفحص اذا كان الملف موجود مسبقا أم لا

5- (move_uploaded_file($_FILES['filetoupload']['tmp_name'],$upload_dir.$filename))

تقوم بنقل بنسخ الملف ورفعه الى السيرفر. move_uploaded_file('الملف المصدر','المكان الهدف')

move_uploaded_file('المكان الهدف','الملف المصدر')



===========


وهذا رد لأحد الأخوه تعقيبا على الكود السابق

السلام عليكم

طريقة التحقق ههذ لييست أمنة أبدا :

<?
$limitedext 
= array(".gif",".jpg",".png",".jpeg");
?>


والأفضل استخدام الـ mimy type

<?
$ftype
$_FILES['filup']['type'];
 
$allowed_extensions = array (
"image/pjpeg",
"image/gif",
"image/x-png",
"application/x-zip-compressed"
);
 
if ((!
in_array$ftype $allowed_extensions )) ) {
$err"نوع الملف الأصلي <br><font color=red>$ftype</font><br>غير مصرح به";
}
?>


والله ولي التوفيق

تاريخ الإضافة تاريخ الإضافة : 6/7/2008
زيارات الصفحة زيارات الصفحة : 101
رابط ذو صلة رابط ذو صلة : http://www.swalif.net/softs/swalif45/softs231820/
كاتب الموضوع كاتب الموضوع : ابوطارق


إذا كان لديك فكره برمجيه وتريد تطبيقها فلا تتردد فمن هنا ضع فكرتك