详情页

帝国cms远程保存图片没有后缀的图片的解决方法

时间:2024年03月06日

编辑:佚名

远程保存图片的一个bug新闻数据,带图片,勾选中 远程保存图片如果图片格式是以下这种形式的,则远程保存失败解决方法:远程保存图片的一个bug 新闻数据,带图片,勾选中 远程保存图片
远程保存图片的一个bug
新闻数据,带图片,勾选中 远程保存图片
如果图片格式是以下这种形式的,则远程保存失败
解决方法:
远程保存图片的一个bug 
新闻数据,带图片,勾选中 远程保存图片
如果图片格式是以下这种形式的,则远程保存失败
/tu/0731/4rvhmr20pad.com|\.JPG|\.gif|\.GIF|\.png|\.PNG|\.bmp|\.BMP|\.jpeg|\.JPEG)(.*?)>/is";
        $text=preg_replace($zz1,"<\\1 \\2\\3=\\4".$exp1."\\5\\6".$exp2."\\7>",$text);
改为
        $zz1="/\&;(img|IMG) (.*?)(src|SRC)=('|\&;|\\\\\&;|)([^'|\&;|\\\\\&;|]*)('|\&;|\\\\\&;|)(.*?)>/is";
        $text=preg_replace($zz1,"<\\1 \\2\\3=\\4".$exp1."\\5".$exp2."\\6\\7>",$text);
修改e/class/connect.php大概2862行
       $r[filetype]=GetFiletype($url);
后面再加一行
        if ((strlen($r[filetype]) !==4 ) OR (strlen($r[filetype]) !==5 )) $r[filetype]=".jpg";
修改完后不影响原来正常的使用,也就是普通形式的图片,和不带扩展名形式的图片都能够正确的远程保存下来
-----------------------------------------------------------------------------
7.2替换2个位置:
替换位置1:  e/class/functions.php中
//替换图片标签
function RepImg($text,$copyflash){
        global $ecms_config;
        $exp1="";
        $exp2="";
        //去掉图片链接
        if($ecms_config['sets']['saveurlimgclearurl']==1)
        {
                $zz2="/\&;(a|A) (.*?)(href|Href)=('|\&;|\\\\\&;|)(.+?)><(img|IMG) (.*?)(src|SRC)=('|\&;|\\\\\&;|)(.+?)(\.jpg|\.JPG|\.gif|\.GIF|\.png|\.PNG|\.bmp|\.BMP|\.jpeg|\.JPEG)(.*?)><\/(a|A)>/is";
                $text=preg_replace($zz2,"<\\6 \\7\\8=\\9\\10\\11\\12>",$text);
        }
        $zz1="/\&;(img|IMG) (.*?)(src|SRC)=('|\&;|\\\\\&;|)(.+?)(\.jpg|\.JPG|\.gif|\.GIF|\.png|\.PNG|\.bmp|\.BMP|\.jpeg|\.JPEG)(.*?)>/is";
        $text=preg_replace($zz1,"<\\1 \\2\\3=\\4".$exp1."\\5\\6".$exp2."\\7>",$text);
        return $text;
}
替换位置2: 修改e/class/connect.php大概3119行,
//远程保存
function DoTranUrl($url,$classid){
        global $public_r,$class_r,$ecms_config,$efileftp_fr;
        $classid=(int)$classid;
        //处理地址
        $url=trim($url);
        $url=str_replace(" ","%20",$url);
    $r[tran]=1;
        //附件地址
        $r[url]=$url;
        //文件类型
        $r[filetype]=GetFiletype($url);
        if(CheckSaveTranFiletype($r[filetype]))
        {
                $r[tran]=0;
                return $r;
        }
        //是否已上传的文件
        $havetr=CheckNotSaveUrl($url);
        if($havetr)
        {
                $r[tran]=0;
                return $r;
        }
        //是否地址
代码注释
相关文章
猜你需要