2011-11-10 7 views
2

私のPHPスクリプトでは、URLから画像を取得しようとしていて、サイズを変更してサーバにアップロードしています。スクリプトは、http://getsharp.net/imageupload.php?admin=reneで見ることができます - スクリプトは(そこにいくつかの他のPHPとHTMLはそれにももちろんですが、これは私の問題を与える部分である)以下で見られます: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"); 

すべてが正常に動作しています、ただし、新しいURLをスローすると、次のエラーが表示されます。警告:getimagesize(http://buffalocomputerconsulting.com/images/computer.jpg):ストリームのオープンに失敗しました:接続がタイムアウトしました。

ただし、直後にまったく同じURLにスローすると、問題はなく、画像がアップロードされています。だから私は最初に新しいURLを試すたびに、それは私に上記のエラーを与える。どうすればいいの?

ありがとうございました。

答えて

1
  1. あなたのDNSは、サーバーにはnonreplyingが最初
  2. サーバーには、あなたのアップリンクは、糖蜜のように遅いですが、それはキャッシュプロキシ
を持って
  • 最初のIPv6に接続しようとするDNSしようとあまりにもゆっくり
  • 解決します

    他にもあると思います。別のマシンでスクリプトを試して、それが変わるかどうか確認してください。

  • +0

    さて、スクリプトエラーだと思いました。私のサーバー構成で2と3の設定を変更することはできますか? –

    +0

    別のサーバーから試したときに変更されましたか? – chx

    +0

    私はそれを試みようとしています。 2分。 –

    関連する問題