DEDE后台控制是否使用绝对路径的参数好像默认只对远程图片本地化起效,用本地上传的话因为经过编辑器处理,开启了没用,所以这里只能自己修改一下文件,参考如下方法:
首先是内容页文章里面的图片上传后自动转为绝对链接,带网址的
1、打开 include/dialog/select_images_post.php这个文件,然后在大约108行
$fileurl = $activepath.'/'.$filename;
改为
$fileurl = $cfg_basehost.$activepath.'/'.$filename;
这里的意思就是编辑器上传的时候,带上域名这样的绝对路径.
2、然后打开/dede/inc/inc_archives_functions.php
找到大约436行
global $cuserLogin,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir,$ddcfg_image_dir,$cfg_addon_savetype;
改为
global $cfg_basehost,$cuserLogin,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir,$ddcfg_image_dir,$cfg_addon_savetype;
找到大约481行
if($isremote==1 && preg_match("#^http:////#i", $picname))
改成
if(($isremote==1 && preg_match("#^http:////#i", $picname)) && !checkstr($picname,$cfg_basehost))
找到大约502行
if(($litpic=='ddfirst' && !preg_match("#^http:////#i", $picname))
改为
if(($litpic=='ddfirst' && !preg_match("#^http:////#i", $picname)) || ($litpic=='ddfirst' && checkstr($picname,$cfg_basehost)))
找到大约503行
$oldpic = $cfg_basedir.$picname; 在这句代码的上面加一句 $picname = str_replace($cfg_basehost,'',$picname);
然后可以把滚动条拉到最下面 加入以下函数:
function checkstr($str,$str1){
//判断是否包含$str1这个字符
$tmparray = explode($str1,$str);
if(count($tmparray)>1){
return true;
} else{
return false;
}
}
完成
其次、缩略图地址改成绝对路径
我们默认的缩略图是这样的 /uploads/allimg/170714/71P2AD-1-lp.jpg 要实现的效果是这样的 /d/file/202012/htje0mbdkla1773.jpg
需要修改dede/article_add.php 和 dede/article_edit.php
这两个文件一个是添加的时候,一个是编辑的时候
1、搜索 if(preg_match("#j#", $flag)) $ismake = -1; 这句代码
在这句代码的上面加入以下代码:
if($litpic!='' && !checkstr($litpic,$cfg_basehost)){
$litpic=$cfg_basehost.$litpic;
}
2、随便在include的一个php文件里面加入以下代码:
function checkstr($str,$str1){
//判断是否包含$str1这个字符
$tmparray = explode($str1,$str);
if(count($tmparray)>1){
return true;
} else{
return false;
}
}
完成