帝国论坛帝国网站管理系统交流区帝国CMS使用交流远程保存图片的一个bug 【本版专题贴子】  
 1/2     1 2 ›› ›|
主题:远程保存图片的一个bug [加入收藏夹]   

aulian
用户头衔:举人

精华贴   :1
发贴数   :162
经验值   :843
注册时间:2006-08-21
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
远程保存图片的一个bug
新闻数据,带图片,勾选中 远程保存图片

如果图片格式是以下这种形式的,则远程保存失败

http://pic.qyer.com/album/user/547/22/RE1SQBgHYw/index/670

解决办法

修改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版的时候把这个bug修复到官方程序里去



三种碎片的功能整合
新闻和附件保存路径的问题
増删改刷的API
2014-01-23 22:59:17 已设置保密 顶部 回复 引用 报告 编辑 删除

城市孤星
用户头衔:探花

精华贴   :0
发贴数   :7446
经验值   :16630
注册时间:2007-12-26
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

要有扩展名才会保存




2014-01-24 08:11:22 已设置保密 顶部 回复 引用 报告 编辑 删除

zgphomecyg
用户头衔:书生

精华贴   :0
发贴数   :35
经验值   :117
注册时间:2014-01-23
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

这个不错要顶




2014-01-24 19:28:28 已设置保密 顶部 回复 引用 报告 编辑 删除

zgphomecyg
用户头衔:书生

精华贴   :0
发贴数   :35
经验值   :117
注册时间:2014-01-23
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

6.6如何解决呀。不只是7.0才有




2014-01-24 19:29:29 已设置保密 顶部 回复 引用 报告 编辑 删除

zgphomecyg
用户头衔:书生

精华贴   :0
发贴数   :35
经验值   :117
注册时间:2014-01-23
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

顶高手出来哈




2014-01-25 09:03:08 已设置保密 顶部 回复 引用 报告 编辑 删除

wndhw
用户头衔:秀才

精华贴   :0
发贴数   :81
经验值   :422
注册时间:2008-06-04
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]
楼主,还是无法解决
楼主,哨策网(http://www.shaoce.com/)还有当暖网(http://www.dangnuan.com/),两个网站都按照你的要求修改了,但是无法实现的,请帮助分析一下原因。


上传以下图片:




顶峰专题网
2014-03-13 21:39:30 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3023
经验值   :8618
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

原帖由 aulian 于 2014-01-23 22:59:17 发表
...
修改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);
...


$zz1就是正则1的意思,现在改为:
      
      $zz1="/\<(img|IMG)(.*?)( src| SRC)=('|\"|\\\\\"|)([^'|\"|\\\\\"|]*)('|\"|\\\\\"|)(.*?)>/is";

也就是在src和SRC之前添加了一个空格,去掉(.*?)之前的空格。因为现在网页里,有些img标签里,含有data-src属性;不加空格的话,会错误包围data-scr属性,而把随后的src属性丢弃。

[该贴被修改 1 次,最后修改时间 2015-05-02 15:34:10 ]


帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2015-05-02 11:43:02 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3023
经验值   :8618
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

7.2替换位置:  e/class/functions.php中

//替换图片标签
function RepImg($text,$copyflash){
        global $ecms_config;
        $exp1="[--copyimg--]";
        $exp2="[/--copyimg--]";
        //去掉图片链接
        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;
}



帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2015-05-02 12:04:07 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3023
经验值   :8618
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

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



帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2015-05-02 12:07:13 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3023
经验值   :8618
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

最新的进展:修改getfiletype为

function GetFiletype($filename){
     //add by jiuhecai begin
        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]));
                        }
                }
        }
      //add by  jiuhecai  end

        $filer=explode(".",$filename);
        $count=count($filer)-1;
        return strtolower(".".RepGetFiletype($filer[$count]));
}



帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2017-01-12 12:37:52 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/2     1 2 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1