您的位置 首页 > 折腾笔计

帝国cms编辑器远程保存图片无效,原因:http网站采集不支持https图片

刚用帝国CMS7.5搭建的新网站,发布文章时,勾选了编辑器下方的“远程保存图片”,无效果,没有正常远程下载图片到服务器中,编辑器中的图片绝对地址也没有变成相应的相对地址

刚用帝国CMS7.5搭建的新网站,发布文章时,勾选了编辑器下方的“远程保存图片”,无效果,没有正常远程下载图片到服务器中,编辑器中的图片绝对地址也没有变成相应的相对地址。

经过检查,原来是当前站点是http,而要远程下载的图片地址是https,如果改成http协议的图片地址,就能正常远程下载。在帝国cms官方论坛查询了下,有网友提出:远程保存图片不支持https,需要php开启ssl模块。

打开文件/e/class/connect.php:

第一步:在connect.php文件最上面,<?php下面添加以下函数:
function getHTTPS($url) {

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
return $result;

}

第二步:搜索function ReadFiletext,找到以下函数:

function ReadFiletext($filepath){
    $filepath=trim($filepath);
    $htmlfp=@fopen($filepath,"r");
    //远程
    if(strstr($filepath,"://"))
    {
        while($data=@fread($htmlfp,500000))
        {
            $string.=$data;
        }
    }
    //本地
    else
    {
        $string=@fread($htmlfp,@filesize($filepath));
    }
    @fclose($htmlfp);
    return $string;
}

换成以下代码:

function ReadFiletext($filepath){
    $filepath=trim($filepath);
    $htmlfp=@fopen($filepath,"r");
    //远程
    if(strstr($filepath,"https://")){
        return getHTTPS($filepath);
    }
    if(strstr($filepath,"://"))
    {
        while($data=@fread($htmlfp,500000))
        {
            $string.=$data;
        }
    }
    //本地
    else
    {
        $string=@fread($htmlfp,@filesize($filepath));
    }
    @fclose($htmlfp);
    return $string;
}
免责声明:凡注明 “来源:***(非领袖网)”的图文内容,版权归原作者所有,领袖网转载旨在分享交流,并不代表赞同文中观点和对其真实性负责。仅供读者参考,不用作商业用途。如涉版权等问题,请尽快联系我们,我们将在第一时间删除。
留言与评论(共有 0 条评论)
   
验证码:
联系我

联系我

156-0771-7052

在线咨询: 点击这里给我发消息

邮箱: Admin@gxlingshou.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫联系我

微信扫一扫联系我

返回顶部