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

الموضوع: رجاء المساعدة - مشكلة في رفع اكتر من ملف الى قاعدة البيانات

  1. #1
    عضو جديد
    تاريخ التسجيل
    Jun 2007
    المشاركات
    5

    Smile رجاء المساعدة - مشكلة في رفع اكتر من ملف الى قاعدة البيانات



    مرحبا اخواني
    لقد قمت بعمل سكريبت لرفع الملفات غلى قاعدة البيانات بدلا من رفعها الى مجلد معين على القرص، ولكنني اردت تطويره ليصبح بالامكان رفع اكتر من ملف في ان واحد الى قاعد بيانات واستخدمت طريقة جعل المستخدم يحدد عدد حقول رفع الملفات ليختار عدد الملفات المراد رفعها
    ولكنني اواجه مشكلة الا وهي ان السكريب يرفع الملف الاول ولكنه عند رفع الملف التاني نلاحظ انه قام بدمج الملفين الاول والتاني في الحقل في قاعدة البيانات
    - خصائص الحقول في قاعدة البيانات
    كود PHP:
    `fileIDint(11NOT NULL auto_increment,
      `
    file_mimetext NOT NULL,
      `
    file_contentsmediumblob NOT NULL,
      `
    file_nametext NOT NULL,
      `
    file_sizeint(4NOT NULL default '0'
    - كود ادخال ملف واحد في قاعدة البيانات
    كود PHP:
    $fp fopen($_FILES['userfile']['tmp_name'], "rb"); 
    while(!
    feof($fp)) 

    $file_contents .= fread($fp1024);   
    //fread is binary safe 

    fclose($fp); 
    $file_contents addslashes($file_contents); 
    $file_contents addcslashes($file_contents"\0");
    $file_mime$_FILES['userfile']['type']; 
    $file_name$_FILES['userfile']['name']; 
    $file_size$_FILES['userfile']['size']; 
     
    $Incats =mysql_query("INSERT INTO files (file_mime,file_contents,file_name,file_size) VALUES ('$file_mime','$file_contents','$file_name','$file_size')") or die (mysql_error()); 
    - كود اظهار 5 حقول رفع ملفات
    كود PHP:
    <?
    <form method='POST' enctype ='multipart/form-data' action='$PHP_SELF?action=upadd'>";
    $num_forms = $_POST['num_forms'];
    for (
    $num=5$num>0;$num--)  { 
        echo "
    <input name='userfile[]' type='file' size='32'><br>"; 
         } 
       echo "
    <input type='submit' value='اضــــافة' >
    <
    input type='hidden' value='num_forms' value='$num_forms' name='filled'>
    </
    form>
    - وهذا كود استقبال الملفات لادخالها في قاعدة البيانات الذي قمت بعمله
    الملاحظة انه في الادخال جميع الحقل تدخل بشكل صحيح وهي
    file_mime
    file_name
    file_size
    اما حقل
    file_contents
    فيتم ادخال الملف الاول بصورة صحيحة اما الملف التاني فيتم دمج الاول معه كما لاحظت

    كود PHP:
    $r 0;
    $userfile $_POST['userfile'];
    while (isset(
    $userfile[$r])){
           if(
    $userfile[$r])
    $fp fopen($_FILES['userfile']['tmp_name'][$r], "rb"); 
    while(!
    feof($fp)) 

    $file_contents .= fread($fp1024);   
    //fread is binary safe 

    fclose($fp); 
    $file_contents addslashes($file_contents); 
    $file_contents addcslashes($file_contents"\0");
     
    $file_mime$_FILES['userfile']['type'][$r]; 
    $file_name$_FILES['userfile']['name'][$r]; 
    $file_size$_FILES['userfile']['size'][$r]; 
     
    $Incats =mysql_query("INSERT INTO files (file_mime,file_contents,file_name,file_size) VALUES ('$file_mime','$file_contents','$file_name','$file_size')") or die (mysql_error()); 
    $r++; 


    نرجو من حضرتكم المساعدة
    وكل عام وانتم بخير







  2. #2
    عضو جديد
    تاريخ التسجيل
    Jun 2007
    المشاركات
    5


    لهالدرجة الموضوع صعب؟؟؟؟






  3. #3
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    اتفضل اخي الكريم جرب هذا المثال
    كود PHP:
    <?php
    /** 
      * ##############################################
      * ##برمجة محمدهلال                             ##
      * ##جميع الحقوق محفوظة لي محمدهلال             ##
      * ##    mohamedhelal                            ##
      * ##all rights to mohamedhelal                 ##
      * ##email:mohamed_helal123456@hotmail.com        ##
      * ##############################################
      */
      
    switch($_GET['act'])
      {
          default:
          echo 
    '<form method="post" action="upload.php?act=up" enctype ="multipart/form-data">
        <input name="file[]" type="file"><br>
        <input name="file[]" type="file"><br>
        <input name="file[]" type="file"><br>
        <input name="file[]" type="file"><br>
        <input name="Submit1" type="submit" value="submit">
        </form>'
    ;
          break;
          case 
    'up':
          
    $updir="updir/";
          echo 
    "<pre>";
          for(
    $i=0;$i<count($_FILES['file']['name']);$i++)
          {
          
    $file_name=$_FILES['file']['name'][$i];
          
    $tmp_name=$_FILES['file']['tmp_name'][$i];
          
    move_uploaded_file($tmp_name,$updir.$file_name);
          }
          echo 
    "</pre>";
          
          break;
      }

    ?>
    ورمضان كريم





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  4. #4
    عضو جديد
    تاريخ التسجيل
    Jun 2007
    المشاركات
    5


    تسلم اخي ولكن اان اتكلم عن رفع الملفات الى قاعدةا لبيانات وليس الى فولدر على السيرفر






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

  6. #6
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    تسلم اخي ولكن اان اتكلم عن رفع الملفات الى قاعدةا لبيانات وليس الى فولدر على السيرفر
    اتفضل اخي الكريم

    كود PHP:
    <?php
    /** 
      * ##############################################
      * ##برمجة محمدهلال                             ##
      * ##جميع الحقوق محفوظة لي محمدهلال             ##
      * ##    mohamedhelal                            ##
      * ##all rights to mohamedhelal                 ##
      * ##email:mohamed_helal123456@hotmail.com        ##
      * ##############################################
      */
     
    mysql_connect("localhost","root",123456);
     
    mysql_select_db('ajax');
      switch(
    $_GET['act'])
      {
          default:
          echo 
    '<form method="post" action="upload.php?act=up" enctype ="multipart/form-data">
        <input name="file[]" type="file"><br>
        <input name="file[]" type="file"><br>
        <input name="file[]" type="file"><br>
        <input name="Submit1" type="submit" value="submit">
        </form>'
    ;
          break;
          case 
    'up':
          
    $updir="updir/";
          echo 
    "<pre>";
          for(
    $i=0;$i<count($_FILES['file']['name']);$i++)
          {
          
    $file_name=$_FILES['file']['name'][$i];
          
    $file_type=$_FILES['file']['type'][$i];
          
    $file_size=$_FILES['file']['size'][$i];
          
    $tmp_name=$_FILES['file']['tmp_name'][$i];
          
    $Fp=fopen($tmp_name,"r");
          
    $read=fread($Fp,filesize($tmp_name));
          
    $file_contents=addslashes($read);
          
    fclose($Fp);
          
    mysql_query("INSERT INTO files (file_mime,file_contents,file_name,file_size) VALUES 
          ('
    $file_type','$file_contents','$file_name','$file_size')") ;
          }
          echo 
    "</pre>";
          
          break;
      }

    ?>
    وشوف الدرس ده
    [





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  7. #7
    عضو جديد
    تاريخ التسجيل
    Jun 2007
    المشاركات
    5


    للأسف لم تعمل - انت قمت بعمل طريقة خاصة بك ولقد جربتها ولكنها لم تعمل الرجاء مراجعة طريقتي ومحاولة ايجاد الحل
    مع العلم ان طريقتي ناجحة ولكن مشكلتها اانها عند اختيار ملفين متلا لرفعهما يتم رفع الملف الاول بنجاح وتدخل الحقول الاربعة بالشكل السليم اما الملف التاني فتدخل جميع الحقول بالشكل الصحيح الا حقل file_contents فيتم ادخال مالف الاول والتاني مدمجين وهكذا فان الملف المدخل لن يعمل
    المطلوب ادخال الملف التاني وحدة في حقل file_contents دون دمج اي شيء معه، انا اعتقد انه يجب وضع [$r] له ولكن اين لا اعلم






  8. #8
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    للأسف لم تعمل - انت قمت بعمل طريقة خاصة بك ولقد جربتها ولكنها لم تعمل الرجاء مراجعة طريقتي ومحاولة ايجاد الحل
    مع العلم ان طريقتي ناجحة ولكن مشكلتها اانها عند اختيار ملفين متلا لرفعهما يتم رفع الملف الاول بنجاح وتدخل الحقول الاربعة بالشكل السليم اما الملف التاني فتدخل جميع الحقول بالشكل الصحيح الا حقل file_contents فيتم ادخال مالف الاول والتاني مدمجين وهكذا فان الملف المدخل لن يعمل
    المطلوب ادخال الملف التاني وحدة في حقل file_contents دون دمج اي شيء معه، انا اعتقد انه يجب وضع [$r] له ولكن اين لا اعلم
    اخي الكريم

    ده بنيت الجدول

    كود PHP:

    CREATE TABLE 
    `files` (
      `
    file_idint(11NOT NULL auto_increment,
      `
    file_mimevarchar(100NOT NULL,
      `
    file_contentsmediumblob NOT NULL,
      `
    file_namevarchar(250NOT NULL,
      `
    file_sizevarchar(50NOT NULL,
      
    PRIMARY KEY  (`file_id`)
    ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=
    و قوم بتغير معلومات الاتصال بقاعدة البيانات والسيرفر





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com





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

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

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