当前位置:首页 > 新闻资讯

帝国cms如何远程保存无后缀名(无扩展)的图片

发表日期:2017-01-12文章编辑:楚亿达工作室浏览次数:    

 帝国cms有远程保存图片的功能。但是现在有的网络图片进化的不带尾巴了,就是不带扩展名了。

帝国cms的远程保存就卡壳了,不能保存这图片了。怎么办呢?可以这样修改帝国cms源代码。

友情警告:修改源代码有风险,最好先备份下额。

1.让帝国cms对这些不带尾巴的链接能正确获得扩展名

修改 e/class/connect.php中的函数 GetFiletype

//取得文件扩展名
function GetFiletype($filename){
    //begin adding by  jiuhecai 
    if(strstr($filename,"://")){
        $pathinfo = pathinfo($filename);
        if(array_key_exists("extension",$pathinfo)){
            return strtolower(".".RepGetFiletype($pathinfo["extension"]));
        }
        $mimes=array(
            'image/bmp'=>'bmp',
            'image/gif'=>'gif',
            'image/jpeg'=>'jpg',
            'image/png'=>'png',
            'image/x-icon'=>'ico',
            'image/webp'=>'webp'
        );
        
        if(($headers=get_headers($filename, 1))!==false){  
            $type=$headers['Content-Type'];
            if(isset($mimes[$type])){
                return strtolower(".".RepGetFiletype($mimes[$type]));
            }
        }
    }
    //end adding by jiuhecai 
    $filer=explode(".",$filename);
    $count=count($filer)-1;
    return strtolower(".".RepGetFiletype($filer[$count]));
}

 

原理也简单,不带扩展名为啥浏览器能识别,是因为头信息里告诉浏览器了,所以我们用外交官get_headers和图片服务器谈谈,让她乖乖告诉我们这图片类型。

 

2.让帝国cms能愿意接受不带尾巴的连接

修改e/class/functions.php中的函数RepImg函数为:

//替换图片标签
function RepImg($text,$copyflash){
    global $ecms_config;
    $exp1="";

 

这样,嘿嘿,爽了!

 

如没特殊注明,文章均为楚亿达工作室原创,转载请注明来自http://www.cydidc.com/news/cyd140.html