如何在织梦dede开启多站点后解决图片上传路径错误的问题?

在织梦后台,修改数据目录和文件目录为绝对路径,可以临时解决多站点上传图片路径出错的问题。

在织梦DedeCMS中,开启多站点功能后,上传图片路径出错是一个常见的问题,这主要是由于默认的图片上传使用的是相对路径,而启用多站点后,这些路径就不再正确,以下将详细介绍一些临时解决办法:

如何在织梦dede开启多站点后解决图片上传路径错误的问题?

修改上传脚本以返回绝对路径

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";
     }

这样修改后,图片浏览器上传图片时也会返回正确的绝对路径。

如何在织梦dede开启多站点后解决图片上传路径错误的问题?

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/。

点击“开始替换”,完成后重新生成所有内容页面。

如何在织梦dede开启多站点后解决图片上传路径错误的问题?

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

(0)
未希的头像未希新媒体运营
上一篇 2024-10-23 03:26
下一篇 2024-10-23 03:28

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入