Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wgrywaniem zdjęć na serwer
Forum PHP.pl > Forum > PHP
marcinpruciak
Gdy wgrywam kilka zdjęć na raz i chcę zmienić ich rozdzielczość do dużej np. 1280x960 to wyskakuje mi błąd
Kod
Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/upload/class.upload_0.26/class.upload.php on line 4047


Tutaj jest kod skryptu który wykombinowałem:

  1. <?
  2. include('./setting.php');
  3. include('./class.upload_0.26/class.upload.php');
  4. try
  5.     {
  6.        $pdo = new PDO('mysql:host=localhost;dbname=images', 'images', '******');
  7.        $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  8.     }
  9.     catch(PDOException $e)
  10.     {
  11.        echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  12.     }
  13. $stm = $pdo -> query("SELECT `img_max_upload` FROM `config` LIMIT 1");
  14. foreach ($stm as $rzad) {
  15. for($i = 1; $i < $rzad['0']+2; $i++){
  16.  
  17.  
  18.  if($_FILES['image'.$i]['error']==0) {
  19.      $foo  =  new  Upload($_FILES['image'.$i]);
  20.          if  ($foo->uploaded)  {
  21.             
  22.             //  save  uploaded  image  with  a  new  name
  23.                 $foo->file_new_name_body = 'img';
  24.                     if($_POST['resize'.$i]!='org') {
  25.                     $foo->image_resize  =  true;
  26.                     $foo->image_y  = $_POST['resize'.$i];
  27.                     $foo->image_ratio_x  =  true;
  28.                  }
  29.                 $foo->Process('./img');
  30.                     if  ($foo->processed)  {
  31.                     $img_name = $foo->file_dst_name;
  32.                     }  else  {
  33.                           echo  'error  :  '  .  $foo->error;
  34.                     }
  35.                         //  save  uploaded  image  with  a  new  name,
  36.                         //  resized  to  thumb  wide
  37.                         $foo->file_new_name_body  =  'img_thumb';
  38.                         $foo->image_resize  =  true;
  39.                     $st = $pdo -> query("SELECT `thumb_size` FROM `config` LIMIT 1");
  40.                  foreach($st as $row) {
  41.                         $foo->image_y  =  $row['thumb_size'];
  42.                  }
  43.                         $foo->image_ratio_x  =  true;
  44.                         $foo->Process('./img');
  45.                              if  ($foo->processed)  { 
  46.                              $thmb_name = $foo->file_dst_name;
  47.                                  $foo->Clean();
  48.                   
  49.                      $stmt = $pdo -> prepare("INSERT INTO images (id, name_img, name_thmb, date) VALUES (NULL, :name_img, :name_thmb, :date)"); 
  50. $date = date(Y.'-'.m.'-'.d.' '.H.':');                        
  51.                         $stmt -> bindValue(':name_img', $img_name, PDO::PARAM_STR); 
  52.                      $stmt -> bindValue(':name_thmb', $thmb_name, PDO::PARAM_STR);
  53.                         $stmt -> bindValue(':date', $date, PDO::PARAM_STR);
  54.                         
  55.                         $ilosc = $stmt -> execute(); 
  56.         
  57.                         if($ilosc > 0) {
  58.                            //     echo 'Zauktualizowano: '.$ilosc.' rekordow';
  59.                                       
  60.  
  61.                      echo '<form name="x"><div id="result"><img src="img/'.$thmb_name.'"> 
  62.                      <div id="link" style="text-align:right;">Link do obrazka:
  63.                      <input type="text" name="y" value="'.HTTP.'img/'.$img_name.'">
  64.                      <a href="#" onclick="copy()">kopiuj</a></div>
  65.                       
  66.                      <div id="form1" style="text-align:right;">Pełny rozmiar na forum: 
  67.                      <input readonly name="yz" type="text" size="30" value="[img='.HTTP.'img/'.$img_name.']">
  68.                      <a href="#" onclick="copy2()">kopiuj</a></div>
  69.                   
  70.                      <div id="form1" style="text-align:right;">Pełny rozmiar na www:
  71.                       <input readonly name="link" type="text" size="30" value="&lt;a href=&quot;'.HTTP.'my.php?img='.$img_name.'&quot;&gt;&lt;img src=&quot;'.HTTP.'img/'.$img_name.'&quot; border=&quot;0&quot; alt=&quot;xxx&quot;/&gt;&lt;/a&gt;"> 
  72.                      <input name="copy" type="button" value="Skopiuj"></div>
  73.                       
  74.                      <div id="form1" style="text-align:right;">Mianiaturka na forum: 
  75.                      <input readonly name="link" type="text" size="30" value="[img='.HTTP.'img/'.$thmb_name.']"> 
  76.                      <input name="copy" type="button" value="Skopiuj"></div>
  77.                       
  78.                      <div id="form1" style="text-align:right;">Miniaturka na www: 
  79.                      <input readonly name="link" type="text" size="30" value="&lt;a href=&quot;'.HTTP.'my.php?img='.$img_name.'&quot;&gt;&lt;img src=&quot;'.HTTP.'img/'.$thmb_name.'&quot; border=&quot;0&quot; alt=&quot;xxx&quot;/&gt;&lt;/a&gt;"> 
  80.                      <input name="copy" type="button" value="Skopiuj"></div>
  81.                      </div>
  82.                      </form>';
  83.                   
  84.                   
  85.                          } else {
  86.                                 echo 'Wystapil blad podczas dodawania rekordow!';
  87.                          }
  88.                              }  else  {
  89.                                  echo  'error  :  '  .  $foo->error;
  90.                              }
  91.                   
  92.          }
  93.  }
  94. }
  95. }
  96. ?>



Tu jest strona z przykładami tej klasy:

http://www.verot.net/php_class_upload.htm



Jak się pozbyć tego błędu? 
bim2
Czas wykonywania się kodu php to maksymalnie 30 sekund. Albo usprawnisz skrypt, albo w php.ini zwiększ limit. smile.gif
marcinpruciak
O tym to ja wiem, że jest taki czas, ale tyle nie trwa wrzucanie zdjęć, tylko zmiana rozmiaru. Wolałbym w jakiś sposób to usprawnić, ale nie wiem za bardzo jak. Czas wykonywania moge zwiększyć, ale to chyba i tak nic nie da np. przy 10zdjęciach.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.