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

الموضوع: سؤال الى محترفين ال php لدي مشكلة وابحث عن حل

  1. #1
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270

    سؤال الى محترفين ال php لدي مشكلة وابحث عن حل



    السلام عليكم جميعا

    قمت ببرمجة صفحة بسيطة لتحميل 10 صورة او اقل كل مرة باستخدام php بعد تحميل الصور اقمو اوتوماتيكيا بعمل صورة مصغرة من الصورة الاصلية ومن ثم اترك الصورة الاصلية على السيرفر للاستخدام لاحقا


    فقمت بعمل form فيه 10 خانات لاختيار الصور و زر للتحميل. يبدو ان هناك خلل في الكود الذي عملته لانه الصور الصغيرة الحجة ترفع من غير اي مشاكل على الاطلاق. ولاكن اذا حاولت تحميلة صورة بحجم اكبر او صورة مباشرة من digital camera يظهر لي بعض التحذيرات والصورة نفسى لا تحمل!!!! لا اعلم ما هي المشكلة!!!!! هذا هو الكود باختصار ونسخة عن الخلل!!! يرجا المساعدة


    كود:
    
    <?php
    
    
    $max_no_img = 10;
    
    
    /////////////////////////////////////////////////////Create Thumbs Function
    Function CreateThumb($file, $thename, $type, $new_width , $location){
    
    list($width, $height) = getimagesize($file);
    
    $new_height = floor( $height * ( $new_width / $width ) );
    
           $image_p = imagecreatetruecolor($new_width , $new_height);
    
           if ($type == "image/gif"){
    
               $img = @imagecreatefromgif($file);
    
               imagecopyresampled($image_p, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    
               $location .= $thename;
    
               imagegif($image_p, $location, 100);
    		   
           } else if ($type == "image/png"){
    	   
             $img = @imagecreatefrompng($file);
    
             imagecopyresampled($image_p, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    
             $location .= "$thename";
    
             imagepng($image_p , $location, 100);
    	   
    	   } else {
    
             $img = @imagecreatefromjpeg($file);
    
             imagecopyresampled($image_p, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    
            $location .= "$thename";
    
             imagejpeg($image_p , $location, 100);
    
           }
    
           
    }
    
    
    
    /////////////////////////////////////////////Upload add the images
    
    while(list($key,$value) = each($_FILES[images][name]))
    {
    
    	if(!empty($value)){   // this will check if any blank field is entered
    
    	$filename = $value;    // filename stores the value or the file name
    
    	$NewName = substr($filename, 0, strrpos( $filename ,".")); // $NewName will store the file name without the extention
    
    	$NewName = str_replace(" ","-", $NewName); // Add - inplace of blank space in file name
    	$NewName .= rand(1000, 1000000);   //add a random number to the filename
    
    	$NewName .= substr($filename, strrpos( $filename ,".") );    //add the original extention back to the file name
    
    	$images .= $NewName;     //add the file name to a string to keepo track of the files that are uploaded
    	$images .= ",";          //seperate each file with a comma
    
    	$add = "../Photos/FullView/$NewName";   // upload directory path is set
    	copy($_FILES[images][tmp_name][$key], $add);     //  upload the file to the server
    	
    	$type1 = strtolower($_FILES[images][type][$key]);
            
    		CreateThumb($add, $NewName, $type1, 200, "../Photos/Thumbs/");    //origin image path //new filename //type of file // new directory for the created images
    
            $NoImage = 0;   //flag that there are new images has been added
    	}
    $x++;
    }
    
    if ($NoImage == 0){
    $images = substr($images, 0, -1);
    }
    
    
    
    
    
    
    
    
    
    ///////////////////////////////////////////////////////////////////////////FORM
    echo "<form method=\"post\" action=\"$PHP_SELF?action=add\" enctype=\"multipart/form-data\">
      <table cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border-style: solid; border-width: 1px; border-color: #333333; background-color: #EAEAE9;\" width=\"100%\"> 
    
    
       <tr>
           <td style=\"text-align: left; border-style: solid; border-width: 1px; border-color: #333333; color: #fff; background-color: #747474; text-align: center;\" colspan=\"2\"><strong>Add Stones</strong></td>
        </tr>
    
    
       <tr>
           <td style=\"text-align: left; border-style: solid; border-width: 1px; border-color: #333333; background-color: #D8D7D6;\" width=\"30%\">Select an Album</td>
          <td style=\"text-align: left; border-style: solid; border-width: 1px; border-color: #333333;  background-color: #D8D7D6;\" width=\"70%\">
          <select name=\"Catagory\">";
          
          echo "<option value=\"0\">Please Select One...</option>";
          
          while($CategoriesRows=mysql_fetch_array($SelectCategories)){
          
          echo "<option value=\"".$CategoriesRows['id']."\">".$CategoriesRows['Title']."</option>";
          }
          
          mysql_free_result($SelectCategories);
          unset($CategoriesRows);
          
          
          echo "</select>
         
          </td>
        </tr>
    
    
    	  <tr>
    		  <td style=\"text-align: left; border-style: solid; border-width: 1px; border-color: #333333; background-color: #D8D7D6;\">Photo(s)</td>
    			<td style=\"text-align: left; border-style: solid; border-width: 1px; border-color: #333333; background-color: #D8D7D6;\">";
    			
    			
    			
    			
    		for($i=1; $i<= $max_no_img; $i++){
    
    echo "<input type=\"file\" name=\"images[]\" class=\"bginput\" /><br />";
    }
    			
    			
    			
    			echo "</td>
    	  </tr>
    	  
    
    
    
     </table>
    
    
    
    
    <br />
    <input type=\"submit\" value=\"     Add this stone     \" /> 
    
    </form>
    <br /><br /><br />"
    
    ?>


    وهذه رسالة عن التنبيه




    Warning: getimagesize(../Photos/FullView/E1364553.jpg) [function.getimagesize]: failed to open stream: No such file or directory in

    Warning: Division by zero in on line

    Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in

    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in

    Warning: imagejpeg(): supplied argument is not a valid Image resource in





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر



  2. #2


    هذه بعض النصائح حول الأخطاء التي ظهرت لك :

    كود PHP:
    Warninggetimagesize(../Photos/FullView/E1364553.jpg)  [function.getimagesize]: failed to open streamNo such file or  directory in 
    لم يجد الصورة ، لذلك حاول التأكد من المسارات ...

    كود PHP:
     WarningDivision by zero in  on line 
    القسمة في php غير ممكنة على صفر ، لذلك تحقق قبل القسمة إن كانت القيمة صفر

    الباقي متعلق بمسار الصورة فهي غير موجودة أو لم يجد مسارها .

    نصيحة بالنسبة للمجلدات الأفضل أن لا تضع حروف كبيرة مثل Folder ، لكن ضع أسماء بالحروف الصغيرة مثل folder ، ذلك لأن بعض الإستضافات لا تفرق بين المجلدات و خاصة سيرفرات الويندوز ...

    للعلم فأنا لم أقرأ الكود .

    بالتوفيق .






  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,270


    السلام عليكم

    شكرا للرد اخي العزيز rifizm

    اهل من اللممكن التدقيق في الكود لان المشكلة هي عند تحميل الصورة

    عند تحميل الصورة يتم تمريرها في داللة تصغير الصورة وهناك تحدث المشكلة فقط مع الصورة الكبيرة


    يبدو ان الصور الكبيرة الحجم لا يتمكن رفعها!! فاعتقد هنا تبدا المشكلة ولاكن اهل من حل؟؟





    __________________


    عاشت فلسطين وعاشت المقاومة
    http://www.palintefada.com/arabic
    http://www.palissue.com/arabic
    موقع انتفاضة فلسطين - موقع القضية الفلسطينية
    الكاسر


  4. #4
    عضو نشيط
    تاريخ التسجيل
    Dec 2000
    المشاركات
    291


    الإعدادت الإفتراضية للسيرفر تجعل أقصى حجم للملفات المرفوعة = 2 ميجا
    2 ميجا لكل الملفات و الصور و ليس للملف الواحد

    و لتعديل هذه القيمة عدل بيانات ملف php.ini

    يكون موجود داخل مجلد الويندوز , و على سيرفر موقعك يكون على المسار التالي
    كود:
    /usr/local/lib/php.ini
    ابحث عن upload_max_filesize و بتلاقي أمامها الحجم بالميجا بايت عدله للقيمة التي تريدها
    و اعدل أيضا post_max_size و أعطها قيمة أكبر من upload_max_filesize بقليل

    و سوي ريستارت للأباتشي

    service httpd restart





    __________________
    شركة إعلانية عربية
    Adaraby.Com
    خبرة و مصداقية و تميز

    متوفرة فتحات إجبارية - بنرات

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


    تأييداً لكولومبو

    ضع في بداية الدالة فحص للتأكيد باستخدام
    file_exists
    في حال كان الملف غير موجود - اقطع عمل الدالة وارجع رسالة خطأ.

    انصحك - ان تقوم باستعمال دوال للتعامل مع الملفات المضغوطة - فبدل أن ترفع 10 ملفات صور ... ارفع ملف واحد مضغوط يحوي كل الصور - وفك ضغطه في السيرفر ومن ثم افعل ما تريد مع الملفات بداخله ...

    طبيعي - الملف المضغوط لن يكون اصغر من حجم 10 الصور ال Jpeg لأنها اصلاً مضغوطة ... لكنه طريقة اسرع لرفع الملفات ...





    __________________
    أحب سوالف ولا احب الجدليين!
    اسماء اولاد وبنات http://muslim-names.us
    1000 مزاد http://1000mazad.com
    موقع نكت سعوديةhttp://arab-jokes.net

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    44


    مشكلتك في

    memory_limit

    زودها وراح يمشي الوضع معاك






  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Jul 2008
    المشاركات
    427


    مشكلتك في
    memory_limit
    زودها وراح يمشي الوضع معاك
    جرب وضعها في بداية ملف التحميل
    كود PHP:
                ini_set("memory_limit","5M"); 











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

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

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