Tamamlandığında PHP komut dosyası sona ermeyecek

1 Cevap php

Ben bir resim upload senaryo üzerinde çalışıyor ve bu sorun koştu duyuyorum. Bu yüzden bu iki satır eklenen I yeniden boyutlandırma ve yükleme zamanı tükendi ImageMagick kullanarak:

set_time_limit(120);
ini_set('max_input_time', 120);

Şimdi ise, komut asla bitmez. Bu sürekli, bu yükler olsa sayfası çalışan boyutlandırır, ve veritabanı para cezasına ekler edilir. Bir şekilde birbiri ile çatışma mı? Hatta ben zaman sınırı olarak belirlenen 120 saniye geçmiş gider.

Edit: This is the full image editing portion of the script, it works with say 1 or 2 images but when I put in more (thereby making it take longer) it does not.

set_time_limit(120);
ini_set('max_input_time', 120);
$resource = NewMagickWand(); 
MagickReadImage($resource,$image); 
MagickSetImageCompressionQuality( $resource, 100);
$resource = MagickTransformImage($resource,'0x0','660x500'); 
MagickWriteImage($resource, $image);
DestroyMagickWand($resource);

Bu benim yüklenecek olan tüm görüntüleri okumak için kullandığınız kodu: (reSizePic yukarıdaki kodu çağıran fonksiyonu)

$numberImages = count($_FILES['galFile']['name'])-1;

    for($i=1;$i<=$numberImages;$i++)
    {
    $imageName = $_FILES['galFile']['name'][$i];
    			$imageType = $_FILES['galFile']['type'][$i];
    			$imageSize = $_FILES['galFile']['size'][$i];
    			$imageTemp = $_FILES['galFile']['tmp_name'][$i];
    			$imageError = $_FILES['galFile']['error'][$i];

    			//Make sure it is an image
    			if(in_array(end(explode(".", $imageName)), $allowed))
    			{
    				 //Where to upload image to
    				 $uploadFile = $uploadDir . $imageName;
    				 if (file_exists($uploadFile))
    		{
    			//What to do if file already exists
    			//Append random number to the end
    			$front = explode(".", $imageName);
    			$randomNum = rand(1,100);
    			$front[0] = $front[0].$randomNum;
    			$imageName = $front[0].".".$front[1];
    			$uploadFile = $uploadDir . $imageName;
    		}
    			      if(move_uploaded_file($imageTemp,$uploadFile))
    			      {
    			      //Add $imageName to DB
    			       $query = "INSERT INTO galleryImages VALUES(\"0\",\"$lastInsert\",\"$imageName\",\"$i\")";
    	           mysql_query($query);
    	           reSizePic($uploadFile);
    			      }
    			}



Levi

1 Cevap

Sadece onu aramak her zaman olduğu gibi, zamanlayıcı sıfırlanır, bir kez () set_time_limit aramak emin olmalısınız.

Eğer script (30) 10 saniye set_time_limit ararsanız Örneğin, komut dosyası 40 saniye toplam çalışacaktır. Yani her resizePic () çağrısı üzerine ayarlamadan kötü bir fikir.