【问题标题】:getimagesize - failed to open stream: Connection timed out ingetimagesize - 无法打开流:连接超时
【发布时间】:2011-12-26 00:33:57
【问题描述】:

在我的 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 时,它给了我以下错误:警告:getimagesize(http://buffalocomputerconsulting.com/images/computer.jpg): failed to open stream: Connection timed进出。

但是,如果我随后输入完全相同的 URL,则没有问题,并且正在上传图像。因此,每次我第一次尝试新的 URL 时,都会出现上述错误。这怎么可能?

谢谢。

【问题讨论】:

    标签: php image url upload getimagesize


    【解决方案1】:
    1. 您的 DNS 解析太慢
    2. 您的服务器首先尝试无响应的 DNS
    3. 您的服务器首先尝试在 IPv6 上连接
    4. 您的上行链路慢得像糖蜜,但它有一个缓存代理

    我相信还有更多。在另一台机器上尝试你的脚本,看看它是否改变了。

    【讨论】:

    • 好的,还以为是脚本错误。我可以在我的服务器配置中更改 2 和 3 的设置吗?
    • 从不同的服务器尝试时是否发生了变化?
    • 我正要试试。 2 分钟。
    • 在另一台服务器上试过了,但现在我收到了这个错误:在服务器配置中禁用了 URL 文件访问... 我们与服务器主机进行了交谈。无法更改设置。我们有什么办法可以解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    相关资源
    最近更新 更多