找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1299|回复: 0

[分享] 织梦dede开启多站点后上传图片路径出错 临时解决办法

[复制链接]
发表于 2018-3-16 14:45:13 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
做大站,或者做站群的进修都可能需要用到DEDECMS的多站点功能,但是DEDE的这个功能还有一些问题,比如说图片路径问题,默认图片上传是用的相对路径,启用多站点后,图片路径就不对了,这时我今天搞了半天找到一个临时解决办法,还不能确定是否带来新的问题,仅供大家参考,也希望大家提出宝贵意见。
1、打开/include/dialog/select_images_post.php 把
  1. $inquery = "INSERT INTO `idea_uploads`(arcid,title,url,mediatype,width,height,playtime,filesize,uptime,mid)
  2.   VALUES ('0','$filename','".$activepath."/".$filename."','1','$imgwidthValue','$imgheightValue','0','{$imgsize}','{$nowtme}','".$cuserLogin->getUserID()."'); ";
  3. $dsql->ExecuteNoneQuery($inquery);
  4. $fid = $dsql->GetLastID();
  5. AddMyAddon($fid, $activepath.'/'.$filename);
  6. $CKUpload = isset($CKUpload)? $CKUpload : FALSE;
  7. if ($GLOBALS['cfg_html_editor']=='ckeditor' && $CKUpload)
  8. {
  9.     $fileurl = $activepath.'/'.$filename;
  10.     $message = '';
  11.      
  12.     $str='<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction('.$CKEditorFuncNum.', \''.$fileurl.'\', \''.$message.'\');</script>';
  13.     exit($str);
  14. }
复制代码

修改成
  1. if($cfg_multi_site=='Y')
  2. {  
  3.     if(empty($cfg_basehost)) $cfg_basehost = 'http://'.$_SERVER["HTTP_HOST"];
  4.     $activepath2 = $cfg_basehost.$activepath;
  5. } else {
  6.     $activepath2 = $activepath;
  7. }

  8. $inquery = "INSERT INTO `idea_uploads`(arcid,title,url,mediatype,width,height,playtime,filesize,uptime,mid)
  9.   VALUES ('0','$filename','".$activepath2."/".$filename."','1','$imgwidthValue','$imgheightValue','0','{$imgsize}','{$nowtme}','".$cuserLogin->getUserID()."'); ";
  10. $dsql->ExecuteNoneQuery($inquery);
  11. $fid = $dsql->GetLastID();
  12. AddMyAddon($fid, $activepath2.'/'.$filename);
  13. $CKUpload = isset($CKUpload)? $CKUpload : FALSE;
  14. if ($GLOBALS['cfg_html_editor']=='ckeditor' && $CKUpload)
  15. {
  16.     $fileurl = $activepath2.'/'.$filename;
  17.     $message = '';
  18.      
  19.     $str='<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction('.$CKEditorFuncNum.', \''.$fileurl.'\', \''.$message.'\');</script>';
  20.     exit($str);
  21. }
复制代码

这是为了解决CKEditor 上传图片的时候返回绝对路径
2、打开/include/dialog/select_images.php 把
  1. $activeurl = '..'.$activepath;
复制代码

改成
  1. $activeurl = $activepath;
复制代码

把两处的
  1. $reurl = "$activeurl/$file";
复制代码

改成
  1. if($cfg_multi_site=='Y')
  2. {  
  3.     if(empty($cfg_basehost)) $cfg_basehost = 'http://'.$_SERVER["HTTP_HOST"];
  4.     $reurl = $cfg_basehost."$activeurl/$file";
  5. } else {
  6.     $reurl = "$activeurl/$file";
  7. }
复制代码

这是为了解决图片浏览器 上传图片的时候返回绝对路径
3、打开/dede/media_add.pp 找到最下面的这段代码
  1. $inquery = "INSERT INTO `idea_uploads`(title,url,mediatype,width,height,playtime,filesize,uptime,mid)
  2.        VALUES ('$ntitle','$filename','$mediatype','$width','$height','$playtime','$filesize','$uptime','$adminid'); ";
复制代码

在其上方添加
查看源码打印代码帮助
  1. if($cfg_multi_site=='Y')
  2. {  
  3.     if(empty($cfg_basehost)) $cfg_basehost = 'http://'.$_SERVER["HTTP_HOST"];
  4.     $filename = $cfg_basehost.$filename;
  5. }
复制代码

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2025-1-10 23:46 , Processed in 0.039910 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表