DedeCMS的文章圖片會有一個固定的文件夾存放,但是隨著時間推移和文章越來越多,就會暴露一個弊端,如下圖:

我們會發現Dede默認生成的文件夾是以天來算的,每天都更新文章并上傳圖片的話就會生成大量文件夾,這樣一來網站的附件管理就會十分麻煩,同時生成的圖片的路徑也顯得十分冗長,如果要做圖片SEO就會對收錄不利,今天武林網就來教教大家如何修改Dede圖片上傳路徑。
最簡單的方法:直接使用后臺設置按年月保存的方法
打開DedeCMS后臺,系統>系統基本參數>附件設置,有一個設置項“附件保存形式(按data函數日期參數)”,默認的值是:ymd 也就是年月日的意思,把它改成ym就是按年月保存附件了,同理改成y擇按年保存附件。

修改前,文章上傳的路徑為

修改后,文章上傳的路徑為

這樣就能實現一年中所有上傳文件都存放在一個文件夾中,管理起來也比較方便。可是當武林網采集文章的時候把采集到的圖片上傳后發現并沒有按年存放,還是以天存放,看來,上面所做的修改只是針對后臺上傳文件的改變,采集和遠程下載圖片則還要進行下面的徹底修改:
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());
這樣你在采集資源時遠程資源本地化自動生成的文件夾時就會按年月存放了。



















