當前位置:首頁 > 學習>正文

帝國CMS7.5遠程保存圖片沒有后綴的圖片的解決方法

12-11 互聯網 未知 學習

帝國CMS7.5版本遠程保存圖片會存在一個問題,就是傳上去的圖片沒有任何后綴,這個問題相信很多人都遇到了,而且束手無策,今天我就來講下解決帝國CMS7.5遠程保存圖片沒有后綴的解決方法。

帝國CMS7.0,在路徑 e/class/functions.PHP中修改e/class/functions.php大概第1455行和1456行,代碼如下:

        $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);
修改成下面的樣子:

        $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";
修改完后不影響原來正常的使用,也就是普通形式的圖片,和不帶擴展名形式的圖片都能夠正確的遠程保存下來。

帝國CMS7.2和7.5需要替換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; }
第二個位置:

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;
        }
        //是否地址


遠程保存圖片的一個bug

  新聞數據,帶圖片,勾選中 遠程保存圖片

  如果圖片格式是以下這種形式的,則遠程保存失敗

  例如:http://pic.baidu.com/album/user/547/22/RE1SQBgHYw/index/670

解決辦法
7.0替換一個位置:  e/class/functions.php中
修改e/class/functions.php大概第1455行和1456行
        $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);
改為
        $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;
        }
        //是否地址
  OK!以上就是本文的完整解決辦法了,大家自行去測試吧!

版權聲明: 本站僅提供信息存儲空間服務,旨在傳遞更多信息,不擁有所有權,不承擔相關法律責任,不代表本網贊同其觀點和對其真實性負責。如因作品內容、版權和其它問題需要同本網聯系的,請發送郵件至 舉報,一經查實,本站將立刻刪除。

猜你喜歡

精品国产高清自在线一区二区|日韩一区二区精品久久|免费A级毛片18禁网站|久久精品国产亚洲Av影片