云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

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

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

在织梦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开启多站点后图片路径出错的问题。

打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《如何在织梦dede开启多站点后解决图片上传路径错误的问题?》
文章链接:https://www.yunzhuji.net/internet/255645.html

评论

  • 验证码