欢迎光临
我们一直在努力

帝国cms:远程图片本地化不生效的解决办法

帝国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:远程图片本地化不生效的解决办法

评论 抢沙发

评论前必须登录!

立即登录   注册