在织梦DedeCMS中,开启多站点功能后,上传图片路径出错是一个常见的问题,这主要是由于默认的图片上传使用的是相对路径,而启用多站点后,这些路径就不再正确,以下将详细介绍一些临时解决办法:
修改上传脚本以返回绝对路径
1、修改select_images_post.php文件:
打开/include/dialog/select_images_post.php文件。
找到如下代码段:
$inquery = "INSERT INTOidea_uploads
(arcid,title,url,mediatype,width,height,playtime,filesize,uptime,mid) VALUES ('0','$filename','".$activepath."/".$filename."','1','$imgwidthValue','$imgheightValue','0','{$imgsize}','{$nowtme}','".$cuserLogin>getUserID()."'); ";
将其修改为:
if($cfg_multi_site=='Y') {
if(empty($cfg_basehost)) $cfg_basehost = 'http://'.$_SERVER["HTTP_HOST"];
$activepath2 = $cfg_basehost.$activepath;
} else {
$activepath2 = $activepath;
}
$inquery = "INSERT INTOidea_uploads
(arcid,title,url,mediatype,width,height,playtime,filesize,uptime,mid) VALUES ('0','$filename','".$activepath2."/".$filename."','1','$imgwidthValue','$imgheightValue','0','{$imgsize}','{$nowtme}','".$cuserLogin>getUserID()."'); ";
这样修改后,无论是CKEditor还是其他编辑器上传图片时,都会返回正确的绝对路径。
2、修改select_images.php文件:
打开/include/dialog/select_images.php文件。
找到如下代码段:
$activeurl = '..'.$activepath;
将其修改为:
if($cfg_multi_site=='Y') { if(empty($cfg_basehost)) $cfg_basehost = 'http://'.$_SERVER["HTTP_HOST"]; $reurl = $cfg_basehost."$activeurl/$file"; } else { $reurl = "$activeurl/$file"; }
这样修改后,图片浏览器上传图片时也会返回正确的绝对路径。
3、修改media_add.php文件:
打开/dede/media_add.php文件。
在文件最后添加如下代码:
if($cfg_multi_site=='Y') { if(empty($cfg_basehost)) $cfg_basehost = 'http://'.$_SERVER["HTTP_HOST"]; $filename = $cfg_basehost.$filename; }
这样修改后,媒体管理中的图片路径也会变为绝对路径。
批量替换已生成文章的图片路径
1、进入后台进行批量替换:
进入织梦后台——核心——批量维护——数据库内容替换。
选择表dede_addonarticle,字段body。
被替换内容:src="/uploads/。
替换为:src="http://你的域名/uploads/。
点击“开始替换”,完成后重新生成所有内容页面。
2、修改extend.func.php文件:
打开include目录下的extend.func.php文件。
在文件末尾添加如下函数:
function replaceurl($newurl) { $newurl = str_replace('src="/uploads/allimg/', 'src="http://你的域名/uploads/allimg/', $newurl); return $newurl; }
将文章模板中调用文章内容的标签{dede:field.body/}替换成{dede:field.body function=’replaceurl(@me)’/}。
FAQs(常见问题解答)
1、为什么开启多站点后图片路径会出错?
开启多站点后,默认的图片上传使用的是相对路径,而多站点功能会导致这些相对路径不再正确,因此需要修改为绝对路径来解决问题。
2、如何确保新上传的图片使用绝对路径?
确保新上传的图片使用绝对路径的方法是在文章模板中调用文章内容的标签{dede:field.body/}替换成{dede:field.body function=’replaceurl(@me)’/},并在extend.func.php文件中添加相应的替换函数。
通过上述方法可以有效地解决织梦DedeCMS开启多站点后图片路径出错的问题。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1233588.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复