最新公告
  • 欢迎您光临站长源码网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 为什么帝国cms编辑器远程保存图片无效?

    正文概述 管理员   2024-04-10   162

    帝国cms远程图片本地化是一个非常重要的功能,即使不用采集日常更新也经常用得着,我们有时候会发现这个功能不生效,常见有哪些不生效的原 因呢

    帝国cms远程图片本地化不生效原 因

    1、图片格式和大 小设置问题

    帝国默认的图片格式不包括png,但是我们现在qq截图等都是png图片格式,加进去即可,假如源站的图片格式帝国后台没有,那肯定保存不了了。

    系 统参数设置——文件设置——文件扩展名

    同时设置可以上传图片大 小。

    2、服务器配 置问题

    需要在php.in中把allow_url_fopen设置为on

    3、入库超时502问题

    这个在图片数量特别多的时候可能出现,把php执行时间设置长一点,一般默认60s,改成几分钟即可

    4、源站图片链接是https

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

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

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

    第一步:在 connect.php 文件最上面, <?php 下面添加以下函数:

    function getHT TPS($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 getHT TPS($filepath);
        }
        if(strstr($filepath,"://"))
        {
            while($data=@fread($htmlfp,500000))
            {
                $string.=$data;
            }
        }
        //本地
        else
        {
            $string=@fread($htmlfp,@filesize($filepath));
        }
        @fclose($htmlfp);
        return $string;
    }

     


    站长源码网 » 为什么帝国cms编辑器远程保存图片无效?

    发表评论

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    支付宝支付
    微信支付
    余额支付
    ×
    微信扫码支付 0 元