-->

帝国cms远程图片本地化不生效原因以及解决方法

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

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

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

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

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


2、服务器配置问题

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


3、入库超时502问题

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


4、源站图片链接是https

这个是现在遇到比较多的一个问题,目前7.5版本是不支持采集https图片的,需要增加ssl模块支持

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


第一步:在connect.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;
}

以上就是常见的帝国cms远程图片保存失败的原因。

上一篇: 帝国cms模板内容页灵动标签调用当前栏目文章排除当前文章

下一篇: 帝国cms内容页相关内容根据关键字来调用获取

关于搜一搜站长工具

如未标明出处,所有模板均为搜一搜站长工具原创,如需转载,请附上原文地址,感谢您的支持和关注。

关于代售类模板,为网友上传发布,如果有侵犯你的权益,请联系我们,第一时间删除。客服邮箱:3801085100#qq.com(#换成@)

本文地址:http://www.soyiso.net/technology/621.html

展开更多