【问题标题】:php/curl - get extension of image on remote server using headersphp/curl - 使用标头在远程服务器上获取图像的扩展名
【发布时间】:2012-02-13 19:12:45
【问题描述】:

我的网站上有一个表单,允许从远程服务器上传图像。当用户输入链接并提交时,我想检查文件并确保它是正确的扩展名,然后再将其复制到我的服务器。

我尝试直接使用exif_imagetype,但是服务器不允许allow_url_fopen,所以需要帮助。我认为使用 curl 可以解决问题,但我不确定如何从标题中获取图像扩展名。

提前致谢!


解决方案

$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec ($ch);

$content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
echo $content_type;

感谢马里奥!

【问题讨论】:

标签: php image curl


【解决方案1】:

解决方案

$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec ($ch);

$content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
echo $content_type;

感谢马里奥!

【讨论】:

    【解决方案2】:

    基于一些响应,我试图显示来自 curl 请求的图像,并动态找出标头 Content-Type。使用马里奥所做的以及其他一些事情,这里有一个函数可以正确显示来自标准 url 或文件的图像,并正确放入标题中。所有 PHP。

    function displayImage( $filename ) {
        $ch = curl_init();
        $options =  array(
    
            CURLOPT_URL => $filename,
            CURLOPT_ENCODING => "",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HTTPGET => true,
            CURLOPT_CONNECTTIMEOUT => 60,
            CURLOPT_TIMEOUT => 60
    
        );
    
        curl_setopt_array($ch, $options);
        $response = curl_exec($ch);
        header('Content-Type: ' . curl_getinfo($ch, CURLINFO_CONTENT_TYPE));
    
        if(!curl_errno($ch)){
            curl_close($ch);
            $img = imagecreatefromstring($response);
            imagejpeg($img);
            imagedestroy($img);
            return true;
        }
        else{
            curl_close($ch);
            return curl_error($ch);
        }
    }
    

    【讨论】:

      【解决方案3】:

      你也可以这样做:

      $src = 'https://example.com/image.jpg';
      $size = getimagesize($src);
      $extension = image_type_to_extension($size[2]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-01
        相关资源
        最近更新 更多