最新消息: 新版网站上线了!!!

DEDECMS远程附件功能的手工解决办法

dede的远程附件功能依然还是个半残状态,菜总搞了个商业插件要300大洋,呵呵。现在但凡搞网站有点意思的,都要把图片和主站分离开来,提高用户体验么。

其实,用人工的办法也可以实现远程附件的功能,只需要简单的几个步骤即可。
一、按照正常的默认状态发布文章,添加内容。(不要设置开启远程服务器附件什么的)

二、将uploads文件夹用ftp下载到本地,然后上传到放图片的独立服务器。

三、使用批量维护---->数据库内容替换,替换dede_addonarticle中的body字段,将"/uploads/ 替换为 "http://img.XXXX.XXX/uploads/
注意:替换内容一定以"/ 开头的
如果增加的内容少,可以在编辑文章,在源码状态,直接在/uploads 前加上远程附件服务器地址。
    再替换dede_archives中的litpic字段,将缩略图地址也替换成远程附件服务器的长地址。
四、重新生成更新一下全站的文档,就可以把主站的uploads删除掉了。

有个小问题,提醒注意,第二次再操作的时候,不要重复把已经替换过的图片地址再给替换一遍,我的解决办法是:替换的时候直接将uploads给改个名字,比如docs,当然图片上传到远程服务器的时候,也要把uploads修改成相应的名字。

按照上述思路,你也可以写个小插件,自动化的进行上述操作。

 

3、批量修改原数据的
  
如果不批量修改原数据图片路径,显示是不正确的。原上传图片的路径为绝对路径的,如“/uploads/”现需要修改为,"/子目录/uploads/“,现列表需要修改DEDECMS三个数据表下的字段内容

图集缩略图表名dede_uploads字段url;

频道文章列表的图片缩略图表名dede_archives字段litpic

新闻文章内部的图片表名dede_addonarticle字段body

图集文章内部的图片表名dede_addonimages字段imgurls

因数据多,所以需要使用批量替换的方法,知道以上表名字段后就可以灵活替换了,现介绍两种方法:

方法一:使用phpMyadmin用SQL语句替换

如:UPDATEdede_uploadsSETurl=REPLACE(url,'/uploads/','/子目录/')

方法二:使用DEDECMS自带的工具,登陆后台的,核心->数据库内容替换->找到要替换的表和填写上字段、被替换的内容及替换后的内容。

更新缓存,再刷新页面验证,大功告成。另,不得不说一句,把网站修改最大的问题是绝对路径与相对路径的问题

转载请注明:谷谷点程序 » DEDECMS远程附件功能的手工解决办法