3

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

$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 をスローすると、次のエラーが表示されることを除いて、すべて正常に動作しています。

しかし、直後にまったく同じURLを投入すれば問題なく、画像がアップロードされています。そのため、初めて新しい URL を試すたびに、上記のエラーが発生します。どうすればいいの?

ありがとう。

4

1 に答える 1

1
  1. DNS の解決が遅すぎる
  2. サーバーは最初に応答のない DNS を試行します
  3. サーバーは最初にIPv6で接続を試みます
  4. アップリンクは糖蜜のように遅いですが、キャッシング プロキシがあります

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

于 2011-11-10T09:41:43.093 に答える