صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 24

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

  1. #1

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



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

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

    كود PHP:
    <?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 فما فوق.
    كود 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('الملف المصدر','المكان الهدف') .

    كود PHP:
    move_uploaded_file('المكان الهدف','الملف المصدر')
    ?> 






    __________________
    إِنْ لَمْ تُحْسِنْ ظنَّكَ بِهِ لِأَجْلِ وَصْفِهْ فَحَسِّنْ
    ظَنَّكَ بِهِ لِأَجْلِ مُعَامَلَتِهِ مَعَكْ فَهَلْ عَوَّدَكَ إِلَّا حَسَنًا؟
    وَهَلْ أَسْدَى إِلَيْكَ إِلَّا مِنَنًا؟


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    35


    السؤال الاهم كيف تكتب سكربت يعطيك روابط تحميل ديناميكية للملف مثل :

    كود:
    http://www.domain.com/download.php?id=235
    و العنوان اللي راح تحمل منه يجب ان يكون ديناميكي لا بثابت كهذا :

    كود:
    http://www.domain.com/file.zip
    بحيث ما يعرف الزائر مسار و اسم الملف الحقيقي على السيرفر





    التعديل الأخير تم بواسطة iMEG ; 17-06-2008 الساعة 06:27 PM
    __________________
    .. MEG ..

  3. #3

    رد



    الاخ العزيز الغالي يمكنك استخدام خاصية mod_rewrite

    وهي مشروحه في درس اخو نا العزيز فكره

    علي هذا الرابط

    http://www.swalif.net/softs/swalif54/softs187729/

    وشكرا لك





    __________________
    إِنْ لَمْ تُحْسِنْ ظنَّكَ بِهِ لِأَجْلِ وَصْفِهْ فَحَسِّنْ
    ظَنَّكَ بِهِ لِأَجْلِ مُعَامَلَتِهِ مَعَكْ فَهَلْ عَوَّدَكَ إِلَّا حَسَنًا؟
    وَهَلْ أَسْدَى إِلَيْكَ إِلَّا مِنَنًا؟



  4. السلام، لماذا لا تستخدمون الكلاس class.upload.php
    هو كلاس سهل الاستخدام ولا يتطلب اكثر من 3 سطور لكي تكتب سكربت رفع ملفات ..تجدوا الكلاس على الرابط
    class.upload.php - verot.net





    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو



  5. السلام عليكم

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

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


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

    تحية طيبة





    __________________
    كل مالا يعطى يضيع

  6. #6


    جزاكم الله خير وان شاء الله نكون كلنا استفدنا





    __________________
    إِنْ لَمْ تُحْسِنْ ظنَّكَ بِهِ لِأَجْلِ وَصْفِهْ فَحَسِّنْ
    ظَنَّكَ بِهِ لِأَجْلِ مُعَامَلَتِهِ مَعَكْ فَهَلْ عَوَّدَكَ إِلَّا حَسَنًا؟
    وَهَلْ أَسْدَى إِلَيْكَ إِلَّا مِنَنًا؟

  7. #7



    هلا بك أخوي أبو طارق .. الله يبارك فيك ما قصرت .. شغل طيب
    لكن لو قدرت تنقل برمجة السكربت إلى كائن Classes وتطوره أكثر مع الشباب .. وتجرده من أكواد Html ..
    بحيث تخلي أكواد Html في الملف الذي سيتعامل مع الكائن .. حتى يستطيع أي شخص تشكيل قابل السكربت على راحته
    وبين كل فترة وفترة تطور الكلاس ويكون له إصدارات .. بحيث مع كل تطوير , ما يحتاح أي شخص يستعمل السكربت أنه يعدل أو يغير في الملفات الأخرى
    فقط يستبدل ملف الكلاس بالملف الجديد ..

    تمنياتي لك بالتوفيق






    __________________

    ألا في سبيل الله ما أنا فاعل - - - عطاء وإقدام وحزم ونائل


  8. #8


    خوي الغالي ncE بارع Pri

    انا ممتن لك واشكرك جزيل الشكر علي تثبيت الموضوع وان شاء الله تعالي نطور نحن والاخوان ونحوله للفكره الطيبه اللي تفضلت بطرحها وجزاك الله خير وان شاء الله تعاالي جزاك الجنه علي فعلك الكريم وقولك الطيب

    الي الامام يا سوالف





    __________________
    إِنْ لَمْ تُحْسِنْ ظنَّكَ بِهِ لِأَجْلِ وَصْفِهْ فَحَسِّنْ
    ظَنَّكَ بِهِ لِأَجْلِ مُعَامَلَتِهِ مَعَكْ فَهَلْ عَوَّدَكَ إِلَّا حَسَنًا؟
    وَهَلْ أَسْدَى إِلَيْكَ إِلَّا مِنَنًا؟

  9. #9



    والشكر موصول للأخ daif لأنه هو من قام بتثبت الموضوع
    الله يبارك فيه وفيك






    __________________

    ألا في سبيل الله ما أنا فاعل - - - عطاء وإقدام وحزم ونائل


  10. #10


    الشكر موصول لك الاخوة واستاذنا ضيف الله العتيبي كريم واستاذ للجميع





    __________________
    إِنْ لَمْ تُحْسِنْ ظنَّكَ بِهِ لِأَجْلِ وَصْفِهْ فَحَسِّنْ
    ظَنَّكَ بِهِ لِأَجْلِ مُعَامَلَتِهِ مَعَكْ فَهَلْ عَوَّدَكَ إِلَّا حَسَنًا؟
    وَهَلْ أَسْدَى إِلَيْكَ إِلَّا مِنَنًا؟

  11. #11
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2003
    المشاركات
    2,007

    [مساعدة] بحث في قاعدة بيانات عن عدة كلمات ؟؟



    شكرا لك






  12. #12
    عضو سوبر نشيط
    تاريخ التسجيل
    Mar 2008
    المشاركات
    824


    شكرا لك ابو طارق , عمل رائع وشرح سهل






  13. #13
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2003
    المشاركات
    2,007


    السلام عليكم

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

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


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

    تحية طيبة
    ممكن شرح لهذه الطريقة ؟








  14. بهذه الطريقة يتم التحقق :

    كود PHP:
    $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>غير مصرح به";


    يمكنك الاطلاع على مصدر السكريبت والتعلم منه
    [سكريبت] مركز التحميل النسخة 7.1 تم التحديث - دعم السكريبتات والأكواد

    تحياتي





    __________________
    كل مالا يعطى يضيع

  15. #15
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2003
    المشاركات
    2,007


    الإمبراطور وحيد
    شكرا لك ..
    بالعفل جيد
    حيث أنني حملت ملف name.txt واسمه الأصلي كان name.zip

    تعرف عليه على أنه ملفي مضغوط لانصي مع ان اسمه txt

    شكرا لك










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض