Ecmsphp开发中心

1252

帖子

19

跟帖

8

粉丝

用户组:普通会员

头    衔:白银会员

版主

积分
356930
登陆
2134 次
私信
注册时间
2014-06-21 14:06:06
最后登陆时间
2023-09-24 16:04:46

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

 [只看主题]
楼主
0 |
发表: 3 年前
| |
| |
跳转

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

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

  经过检查,原来是当前站点是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;
}


ecmsphp开发中心
ecmsphp开发中心
验证码 换一个

当前在线人数: 0
取消

感谢您的支持,我们会继续努力!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

×

打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

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