帝国CMS远程保存图片没有后缀的图片

图片 帝国 后缀 保存

您的位置:仿站网 > 问答
远程保存图片没有后缀的图片

远程保存图片的一个bug
新闻数据,带图片,勾选中 远程保存图片

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

http://poro.pro/album/user/547/22/RE1SQBgHYw/index/670

5

解决办法

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 23=4".$exp1."56".$exp2."7>",$text);
改为
$zz1="/<(img|IMG) (.*?)(src|SRC)=('|"|"|)([^'|"|"|]*)('|"|"|)(.*?)>/is";
$text=preg_replace($zz1,"<1 23=4".$exp1."5".$exp2."67>",$text);

修改e/class/connect.php大概2862行
$r[filetype]=GetFiletype($url);
后面再加一行
if ((strlen($r[filetype]) !==4 ) OR (strlen($r[filetype]) !==5 )) $r[filetype]=".jpg";

修改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 23=4".$exp1."56".$exp2."7>",$text);
改为
$zz1="/<(img|IMG) (.*?)(src|SRC)=('|"|"|)([^'|"|"|]*)('|"|"|)(.*?)>/is";
$text=preg_replace($zz1,"<1 23=4".$exp1."5".$exp2."67>",$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 78=9101112>",$text);
}
$zz1="/<(img|IMG) (.*?)(src|SRC)=('|"|"|)(.+?)(.jpg|.JPG|.gif|.GIF|.png|.PNG|.bmp|.BMP|.jpeg|.JPEG)(.*?)>/is";
$text=preg_replace($zz1,"<1 23=4".$exp1."56".$exp2."7>",$text);
return $text;
}
//替换图片标签
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 78=9101112>",$text);
}
$zz1="/<(img|IMG) (.*?)(src|SRC)=('|"|"|)(.+?)(.jpg|.JPG|.gif|.GIF|.png|.PNG|.bmp|.BMP|.jpeg|.JPEG)(.*?)>/is";
$text=preg_replace($zz1,"<1 23=4".$exp1."56".$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;
}
//是否地址

//远程保存
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;
}
//是否地址


转载POROPRO博客 详细教程上这里清晰一点 http://poro.pro/diguocms-hqtp.html
转载请注明本文地址:帝国CMS远程保存图片没有后缀的图片 https://mip.ecmsw.cn/ask/164.html
回复列表
1.
有7.5的方法吗
2.
支持一下
3.
代码好长
相关问题
仿站网专注于帝国CMS仿站及二次开发、模板定制等各种有关帝国CMS程序疑难杂症!
电话 短信 客服 联系