النتائج 1 إلى 6 من 6

الموضوع: [درس] رفع الملفات الى قاعدة البيانات upload files to mysql database

  1. #1
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046

    [درس] رفع الملفات الى قاعدة البيانات upload files to mysql database



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

    ويتكون السكريبت من 3 مكونات رئيسية:
    1- الجدول files
    2- نموذج هتمل HTML Form
    3- كود PHP لتحميل الملف

    أولاً: الجدول files
    ويتكون الجدول من الحقول التالية:

    * id ويُحفظ فيه رقم الملف.
    * filename ويُحفظ فيه اسم الملف.
    * filesize ويُحفظ فيه حجم الملف (بالبايت).
    * filetype ويُحفظ فيه نوع الملف.
    * filedata ويُحفظ فيه محتويات الملف.

    وتكون بنية الجدول كالتالي: Table Structure
    كود:
    CREATE  TABLE  `files` ( `id` INT UNSIGNED NOT  NULL  AUTO_INCREMENT ,
     `filename` VARCHAR( 255  )  NOT  NULL ,
     `filesize` INT NOT  NULL ,
     `filetype` VARCHAR( 255  )  NOT  NULL ,
     `filedata` BLOB NOT  NULL ,
     PRIMARY  KEY (  `id`  )
    );
    لاحظ: أننا اخترنا النوع Blob للحقل filedata وهو النوع المناسب لتخزين الملفات

    ثانياً: نموذج هتمل HTML Form:
    كود HTML:
    <form method="post" action="upload.php" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
    <input type="text" name="filename" /><br />
    <input type="file" name="filedata" /><br />
    <input type="submit" name="submit" value="submit" /><br />
    </form>
    لاحظ:

    * أننا أضفنا الكود enctype="multipart/form-data" للوسم <form> وهو لازم حتى يقوم النموذج بتحميل الملفات للسيرفر.
    * لاحظ أيضاً أننا أضفنا MAX_FILE_SIZE في النموذج لتحديد حد أقصى لحجم الملفات المرفوعة وهو 1000000 بايت (حوالي 1 ميجابايت).


    ثالثاً: كود PHP
    كود PHP:
    <?
    // ضع بيانات قاعدة البيانات لديك هنا
    mysql_connect("localhost""root""");
    mysql_select_db("dbname");
    // لا تقم بالتعديل أسفل هذا السطر

    if($_FILES['filedata']['tmp_name'] != "")
    {
        
    $fileName $_FILES['filedata']['name'];
        
    $tmpName  $_FILES['filedata']['tmp_name'];
        
    $fileSize $_FILES['filedata']['size'];
        
    $fileType $_FILES['filedata']['type'];
        
    $fo = @fopen($tmpName"r");
        
    $data = @fread($fofilesize($tmpName));
        
    $data addslashes($data);
    }
    $result = @mysql_query("INSERT INTO `files` VALUES ('', '$fileName', '$fileSize', '$fileType', '$data')");
    if(
    $result)
    {
        echo 
    "تم إضافة الملف بنجاح";
    }
    else
    {
        echo 
    "خطأ أثناء اضافة الملف";
    }

    ?>
    مرفق ملف النموذج وكود php





    الملفات المرفقة الملفات المرفقة
    __________________
    مدونتي


  2. #2
    عضو فعال
    تاريخ التسجيل
    May 2004
    المشاركات
    1,591


    ما شاء الله عليك اخوي محمود مبدع وما في شيء جديد عليك ...

    ربي يعطيك العافية





    __________________
    دروس php بالفيديو !

    marabe7 سابقاً .

    حسَّن موقعك في محركات البحث :
    أكاديمية التطوير

  3. #3
    عضو سوبر نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    700


    mahmoud009 اخي الكريم


    هل ممكن تظيف لنا كيف نضع حجم معين من مساحة الرفع بالبايت

    وتحديد نوع الملف للرفع

    وعند رفع الملف يضع لك رابط التحميل له ويرفع في ملف في السيرفر ايضاً يسمى مثلأ upload

    وتغير اسم الملف الى اسم عشوائي مثلأ 46846.rar

    واكون شاكر لك والله يجزاك خير






  4. #4


    يعطيك العافية اخوي محمود دائماً تتحفنا بالمواضيع المميزة .. والجميلة

    لدي سؤال اذا تسمح :
    الافضل اخزن الملفات في قاعدة البيانات او في مجلدات على السيرفر ؟

    وشكراً لك





    __________________
    سبحان الله وبحمدة ، سبحان الله العظيم

  5. #5
    عضو فعال
    تاريخ التسجيل
    Nov 2005
    المشاركات
    1,624


    شكرا لك أخي الكريم أتمنى ان تقوم بشرح كود الــ php بالتفصيل ولك منى جزيل الشكر. وياريت لو تعمل ملف لاستعراض البيانات المخزنة في قاعدة البيانات.






  6. #6
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    اقتباس المشاركة الأصلية كتبت بواسطة marabe7
    ما شاء الله عليك اخوي محمود مبدع وما في شيء جديد عليك ...

    ربي يعطيك العافية
    تسلم أخي marabe7

    اقتباس المشاركة الأصلية كتبت بواسطة Wyana
    mahmoud009 اخي الكريم


    هل ممكن تظيف لنا كيف نضع حجم معين من مساحة الرفع بالبايت

    وتحديد نوع الملف للرفع

    وعند رفع الملف يضع لك رابط التحميل له ويرفع في ملف في السيرفر ايضاً يسمى مثلأ upload

    وتغير اسم الملف الى اسم عشوائي مثلأ 46846.rar

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

    اقتباس المشاركة الأصلية كتبت بواسطة ابو عابد
    يعطيك العافية اخوي محمود دائماً تتحفنا بالمواضيع المميزة .. والجميلة

    لدي سؤال اذا تسمح :
    الافضل اخزن الملفات في قاعدة البيانات او في مجلدات على السيرفر ؟

    وشكراً لك
    أنا أفضل رفع الملفات في قاعدة البيانات فهو أفضل من الناحية الأمنية
    عشان ما نحتاج للتصاريح 777 للمجلدات

    اقتباس المشاركة الأصلية كتبت بواسطة مستر لؤي
    شكرا لك أخي الكريم أتمنى ان تقوم بشرح كود الــ php بالتفصيل ولك منى جزيل الشكر. وياريت لو تعمل ملف لاستعراض البيانات المخزنة في قاعدة البيانات.
    الموضوع بسيط
    لعرض الملفات التي تم تخزينها
    استخدم الكود:
    كود PHP:
    $id 1//رقم الملف المطلوب جلبه
    $get_file = @mysql_query("SELECT * FROM `files` WHERE id=$id LIMIT 1");
    @
    extract(@mysql_fetch_array($get_file));
    header("Content-length: " $filesize);
    header("Content-type: $filetype");
    header("Content-Disposition: attachment; filename=$filename");
    echo 
    $filedata;
    exit; 






    __________________
    مدونتي





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

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

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