Ik gebruik op dit moment cUrl om afbeeldingen naar een externe server te uploaden. Doordat er 30+ afbeeldingen geupload worden duurt dit soms wel even. Nu wil ik mijn simpele cUrl script omtoveren naar een cUrl_multi. Ik heb het script al geschreven echter upload deze maar één afbeelding in plaats van meerdere.
Wie ziet de fout?


<?php
 $mh             = curl_multi_init();
  $sequenceNumber = 1;
  foreach ($images as $i => $url) {
      if (file_exists(dirname(dirname(__FILE__)) . '/tmp/' . $delad . '_' . $sequenceNumber . '.jpg')) {
          $uploadfile = dirname(dirname(__FILE__)) . '/tmp/' . $delad . '_' . $sequenceNumber . '.jpg';
      } else {
          copy($url, dirname(dirname(__FILE__)) . '/tmp/' . $delad . '_' . $sequenceNumber . '.jpg');
          $uploadfile = dirname(dirname(__FILE__)) . '/tmp/' . $delad . '_' . $sequenceNumber . '.jpg';
      }
      $conn[$i] = curl_init("http://www.website.com/upload.html");
      curl_setopt($conn[$i], CURLOPT_POSTFIELDS, array(
          'sequenceNumber' => $sequenceNumber,
          'imageData' => "@" . $uploadfile . ";type=image/png",
          'filename' => $url
      ));
      curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, true);
      curl_setopt($conn[$i], CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
      curl_multi_add_handle($mh, $conn[$i]);
      
      $sequenceNumber++;
  }
    do {
    				$mrc = curl_multi_exec($mh,$active);
    		} while ($mrc == CURLM_CALL_MULTI_PERFORM);
    		while ($active and $mrc == CURLM_OK) {
    				if (curl_multi_select($mh) != -1) {
    						do {
    								$mrc = curl_multi_exec($mh, $active);
    						} while ($mrc == CURLM_CALL_MULTI_PERFORM);
    				}
    		}

    foreach ($images as $i => $url) {
           $res[$i]=curl_multi_getcontent($conn[$i]);
           rename(dirname(dirname(__FILE__)) . '/tmp/' . $delad . '_' . $sequenceNumber . '.jpg', dirname(dirname(__FILE__)) . '/tmp/' . $madid . '_' . $sequenceNumber . '.jpg');              
           curl_multi_remove_handle($mh,$conn[$i]);
           curl_close($conn[$i]);
    }
    curl_multi_close($mh);
?>

Reageren