如何阅读和验证我的PHP服务器上是否有通过HTTPS发送的图像?

时间:2019-01-08 21:20:07

标签: php image web-services https subdomain

我想在服务器上检查图像,我还有另一个子域来保存图像,但是它们是通过HTTPS提供的

它只能在本地运行,而不能通过HTTPS远程运行,因为它总是打印“ exists directory”。

$foto = "https://subdomain.example.com/images/" . $var . "/" . $var2. "/flayer";

if (file_exists($foto . ".jpg")) {
    echo "HELLO WORL";
}

if (glob($foto . ".*")) {
    if (file_exists($foto . ".jpg")) {
        $ruta = "https://subdomain.example.com/images/". $var . "/" . $var2 . "/flayer.jpg";
    }else{ 
        echo "no exists";
    }
}else{
    echo "no exists on directory";
}

2 个答案:

答案 0 :(得分:0)

body是目录服务。如果它是您域的子目录,则您的文件系统应存储在同一服务器上。在索引文件夹中,定义或存储此路径的变量-将其视为环境变量。

glob()

您现在可以在子域中循环浏览目录。这将是一个名为您的子域的文件夹。

define('PUBLIC_ROOT', dirname(__FILE__));

如果出于某种原因,您的子域托管在其他地方-奇怪-或它是一个外部站点,并且您需要使用HTTP。发送一个foreach(glob(PUBLIC_ROOT . '/subdomain/images/*.jpg', GLOB_BRACE) as $image) // Do something with each JPEG image 请求。您可以在标题中指定任何人。

cURL

您不能使用跨域的目录服务(DS协议)(通过HTTP协议)。

  

移动点::如果您需要该服务器上保存的所有图像的集合,请考虑构建一个API,该API返回所有文件路径或动态URI的JSON编码数组。您的子域,然后从另一个域请求它。

答案 1 :(得分:0)

我有2个选项进行测试

   function remote_file_exists($url, $ext) {
    $ch = curl_init($url . $ext);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    if ($httpCode == 200) {
        return true;
    }
}

AND

    function remote($url, $ext) {
    if (@exif_imagetype($url . $ext)) {
        return true;
    } else {
        return false;
    }
}

有效但是太慢了,有什么方法可以使它更快吗?