您现在的位置是:首页 > 教程 > 帝国CMS教程帝国CMS教程

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

翰悦2023-01-09 12:07:27帝国CMS教程已有人查阅

导读Empire cms的远程图片本地化是一个非常重要的功能,即使不采集每日更新也经常使用,我们有时会发现这个功能不起作用,不起作用的常见原因有哪些?帝国cms远程图片本地化不生效的原因。

Empire 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文件最上面,<?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远程图片本地化失败的原因。

本文标签:

很赞哦! ()

留言与评论 (共有 条评论)
验证码:

相关标签