2011-11-10 3 views
2

입니다. 내 PHP 스크립트에서 URL에서 이미지를 가져와 크기를 조정하고 내 서버에 업로드하려고합니다. ,getimagesize - 스트림을 열지 못했습니다 : 연결 시간이

$admin = $_REQUEST['admin']; 
$url = $_POST['uploadlink']; 

    if ($_POST['filename']){ 
     $filename = $_POST['filename'].".jpg"; 
    } else { 
     $urlinfo = parse_url($url); 
     $filename = basename($urlinfo['path']); 

     $filenamearray = explode(".", $filename); 
     $filenamebase = $filenamearray[0]; 
     $filenamebase = substr($filenamebase, 0, 20); // max 20 characters 
     $filename = $filenamebase.".jpg"; 

    } 

    // Get new dimensions 
    list($width, $height) = getimagesize($url); 
    $new_width = 300; 
    $ratio = $height/$width; 
    $new_height = 300*$ratio; 

    // Resample 
    $image_p = imagecreatetruecolor($new_width, $new_height); 

    if(exif_imagetype($url) == IMAGETYPE_GIF){ 
     $image = imagecreatefromgif($url); 
    }else if(exif_imagetype($url) == IMAGETYPE_JPEG){ 
     $image = imagecreatefromjpeg($url); 
    }else if(exif_imagetype($url) == IMAGETYPE_PNG){ 
     $image = imagecreatefrompng($url); 
    }else{ 
     $image = false; 
    } 

    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

    if(is_dir("images/upload/".$admin."/")){ 
     // Output 
     imagejpeg($image_p, "images/upload/".$admin."/".$filename); 

     imagedestroy($image_p); 
    }else{ 
     mkdir("images/upload/".$admin."/"); 
     // Output 
     imagejpeg($image_p, "images/upload/".$admin."/".$filename); 

     imagedestroy($image_p); 
    } 
    $URL="http://getsharp.net/imageupload.php?admin=".$admin; 

    header ("Location: $URL"); 

모든 것이 잘 작동 : 스크립트는 다음과 볼 (물론 거기에 다른 PHP와 HTML의가있다, 그러나 이것은 나에게 문제를주는 부분입니다) - 스크립트는 http://getsharp.net/imageupload.php?admin=rene에서 볼 수있다 새로운 URL을 던지면 다음 오류가 표시됩니다. 경고 : getimagesize (http://buffalocomputerconsulting.com/images/computer.jpg) : 스트림을 열지 못했습니다 : 연결 시간이 초과되었습니다.

그러나 , 나는 바로 뒤에 똑같은 URL을 던지면 문제가 없으며 이미지가 업로드되고 있습니다. 따라서 처음으로 새 URL을 시도 할 때마다 위의 오류가 발생합니다. 어떻게 이럴 수있어?

감사합니다.

답변

1
  1. 당신의 DNS는
  2. 당신의 서버가 nonreplying가 DNS하려고 너무 느리게 해결 첫째
  3. 서버가 처음
  4. 귀하의 업 링크는 당밀 느린의 IPv6에 연결을 시도
  5. 하지만 캐싱 프록시를 가지고

더 많은 정보가있을 것입니다. 다른 컴퓨터에서 스크립트를 시험해보고 변경 여부를 확인하십시오.

+0

좋아, 스크립트 오류라고 생각했습니다. 서버 구성에서 2와 3의 설정을 변경할 수 있습니까? –

+0

다른 서버에서 시도 할 때 변경 되었습니까? – chx

+0

Im 시도하려고합니다. 2 분. –

관련 문제