织梦图片上传文件路径修改

DedeCMS的文章图片会有一个固定的文件夹存放,但是随着时间推移和文章越来越多,就会暴露一个弊端,如下图:

 

我们会发现Dede默认生成的文件夹是以天来算的,每天都更新文章并上传图片的话就会生成大量文件夹,这样一来网站的附件管理就会十分麻烦,同时生成的图片的路径也显得十分冗长,如果要做图片SEO就会对收录不利,今天做啦就来教教大家如何修改Dede图片上传路径。

 

最简单的方法:直接使用后台设置按年月保存的方法

打开DedeCMS后台,系统>系统基本参数>附件设置,有一个设置项“附件保存形式(按data函数日期参数)”,默认的值是:ymd 也就是年月日的意思,把它改成ym就是按年月保存附件了,同理改成y择按年保存附件。

 

修改前,文章上传的路径为

image.png

修改后,文章上传的路径为

 image.png

 

这样就能实现一年中所有上传文件都存放在一个文件夹中,管理起来也比较方便。可是当做啦采集文章的时候把采集到的图片上传后发现并没有按年存放,还是以天存放,看来,上面所做的修改只是针对后台上传文件的改变,采集和远程下载图片则还要进行下面的彻底修改:

1、使用“后台上传”时,按年月保存的方法

打开网站根目录下的文件夹,路径是:dede/media_add.php,找到:

[table=95%,,,0][tr][td]$dpath = MyDate(“ymd”,$uptime);[/td][/tr][/table]

以月存则改成:

[table=95%,,,0][tr][td]$dpath = MyDate(“ym”,$uptime);[/td][/tr][/table]

以年存则改为:

[table=95%,,,0][tr][td]$dpath = MyDate(“y”,$uptime);[/td][/tr][/table]

DedeCMS的5.7版本为:

$dpath = MyDate("ymd", $uptime);

以月存则改成:

$dpath = MyDate("ym", $uptime);

以年存放则改成:

$dpath = MyDate("y", $uptime);

这样你在网站后台上传图片文件时就会按年月存放了。

2、使用“下载远程图片”时,按年月存放的方法

登陆网站的服务器,打开网站根目录下的文件夹,路径是:dede/inc/inc_archives_functions.php找到:

[table=95%,,,0][tr][td]$imgUrl = $cfg_uploaddir.’/’.MyDate(“ymd”,time());[/td][/tr][/table]

以月存则改为:

[table=95%,,,0][tr][td]$imgUrl = $cfg_uploaddir.’/’.MyDate(“ym”,time());[/td][/tr][/table]

以年存则改为:

[table=95%,,,0][tr][td]$imgUrl = $cfg_uploaddir.’/’.MyDate(“y”,time());[/td][/tr][/table]

DedeCMS的5.7版本为:

 $imgUrl = $cfg_uploaddir.'/'.MyDate("ymd", time());

以月存则改为:

 $imgUrl = $cfg_uploaddir.'/'.MyDate("ym", time());

以年存则改为:

 $imgUrl = $cfg_uploaddir.'/'.MyDate("y", time());

 

这样你以后在网站后台下载远程图片时就会按年月存放了,同样图片本地化的附件也会按年月保存。

按照以上的几个步骤,就可以保证网站在添加图片或上传新文件的时候,保存路径都是按年月命名存放的了。不过也有做采集的朋友反映说,在采集文章或图片的时候,仍然会发现存放文件是按照年月日命名的,对此,你就要按照下面的再修改一下了。

 

3、采集资源时远程资源本地化,按年月存放的方法

这一步是为了修改采集资源时远程资源本地化自动生成的文件夹命名。登陆网站的服务器,打开网站根目录下的文件夹,路径是:include/dedecollection.class.php,5.7版本大概在637行,找到:

$timedir = "c".MyDate("ymd",time());

以月存则改为:

$timedir = "c".MyDate("ym",time());

以年存则改为:

$timedir = "c".MyDate("y",time());

这样你在采集资源时远程资源本地化自动生成的文件夹时就会按年月存放了。