首页站内杂志技术文摘
文章内容页

帝国CMS远程图片没有后缀的解决办法

  • 作者:雨祺
  • 来源: 原创
  • 发表于2022-12-01 11:21:50
  • 被阅读0
  • 帝国CMS7.5版本远程保存图片会存在一个问题,就是传上去的图片没有任何后缀,这个问题相信很多人都遇到了,而且束手无策,今天我就来讲下解决帝国CMS7.5远程保存图片没有后缀的解决方法。
    帝国CMS7.0,在路径 e/class/functions.PHP中修改e/class/functions.php大概第1455行和1456行,代码如下:
    1. $zz1="/\<(img|IMG) (.*?)(src|SRC)=('|\"|\\\\\"|)(.+?)(\.jpg|\.JPG|\.gif|\.GIF|\.png|\.PNG|\.bmp|\.BMP|\.jpeg|\.JPEG)(.*?)>/is"
    2.        $text=preg_replace($zz1,"<\\1 \\2\\3=\\4".$exp1."\\5\\6".$exp2."\\7>",$text); 
    修改成下面的样子:
    1. $zz1="/\<(img|IMG) (.*?)(src|SRC)=('|\"|\\\\\"|)([^'|\"|\\\\\"|]*)('|\"|\\\\\"|)(.*?)>/is"
    2. $text=preg_replace($zz1,"<\\1 \\2\\3=\\4".$exp1."\\5".$exp2."\\6\\7>",$text); 
    然后在修改 e/class/connect.php 的大概2862行
    1. $r[filetype]=GetFiletype($url); 
    在这句话的后面加入如下代码:
    1. if ((strlen($r[filetype]) !==4 ) OR (strlen($r[filetype]) !==5 )) $r[filetype]=".jpg"
    修改完后不影响原来正常的使用,也就是普通形式的图片,和不带扩展名形式的图片都能够正确的远程保存下来。 帝国CMS7.2和7.5需要替换e/class/functions.php中的两个位置,
    第一个位置:
    1. //替换图片标签 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; } 
    第二个位置:
    1. function DoTranUrl($url,$classid){ 
    2.         global $public_r,$class_r,$ecms_config,$efileftp_fr; 
    3.         $classid=(int)$classid; 
    4.         //处理地址 
    5.         $url=trim($url); 
    6.         $url=str_replace(" ","%20",$url); 
    7.     $r[tran]=1; 
    8.         //附件地址 
    9.         $r[url]=$url; 
    10.         //文件类型 
    11.         $r[filetype]=GetFiletype($url); 
    12.         if(CheckSaveTranFiletype($r[filetype])) 
    13.         { 
    14.                 $r[tran]=0; 
    15.                 return $r; 
    16.         } 
    17.         //是否已上传的文件 
    18.         $havetr=CheckNotSaveUrl($url); 
    19.         if($havetr) 
    20.         { 
    21.                 $r[tran]=0; 
    22.                 return $r; 
    23.         } 
    24.         //是否地址 
    【审核人:站长】

        标题:帝国CMS远程图片没有后缀的解决办法

        本文链接:https://www.meiweny.cn/zazhi/zhongwangjiaocheng/135.html

        赞一下

        深度阅读

        • 您也可以注册成为美文苑的作者,发表您的原创作品、分享您的心情!

        阅读记录

          关注美文苑