在使用Dedecms CMS系统时,图片附件默认按照日期(每天一个文件夹)进行保存。这种设置长期运行后,会在“allimg”目录下生成大量文件夹,从而增加管理的复杂性。
虽然Dedecms后台提供了“附件保存形式”的选项,但其功能较为有限。即使进行了设置调整,在后台上传或进行图片本地化操作时,附件仍然按日存放。为了解决这一问题,可以通过修改Dedecms的代码,使所有图片附件按月保存。
步骤1:后台设置按月保存
首先,进入Dedecms v5.7后台,依次点击“系统 > 系统基本参数 > 附件设置”,找到“附件保存形式”选项,默认值为“ymd”(即年月日)。将其更改为“ym”,表示按年月保存附件。
需要注意的是,这一更改仅对FCK编辑器中的上传功能生效。如果通过后台的“上传新文件”功能上传文件,或者在发表文章时选择图片本地化,文件依然会按日存放。
步骤2:修改“后台上传”代码
接下来,需要手动修改代码以确保后台上传的文件也按月保存。打开后台文件夹中的media_add.php文件(路径通常为dede/media_add.php),找到以下代码:
$dpath = MyDate("ymd", $uptime);
将上述代码修改为:
$dpath = MyDate("ym", $uptime);
完成此修改后,后台上传的文件将会按月存放。
步骤3:修改“下载远程图片”代码
最后,为了确保图片本地化的附件也按月保存,需修改另一段代码。打开inc/inc_archives_functions.php文件(路径通常为dede/inc/inc_archives_functions.php),查找以下代码:
$imgUrl = $cfg_uploaddir.'/'.MyDate("ymd", time());
将其更改为:
$imgUrl = $cfg_uploaddir.'/'.MyDate("ym", time());
这样,以后通过图片本地化功能保存的附件也会按月存放。
总结
通过以上三步操作,可以有效解决Dedecms附件按日存放的问题,使所有图片附件均按月保存,从而提升文件管理的便捷性。值得注意的是,当前系统的实现方式直接调用MyDate函数创建文件夹,并未检查后台设置,因此需要手动修改代码。未来版本中,建议改进为根据后台设置动态调整文件夹结构,进一步优化用户体验。
以上内容旨在帮助用户更好地管理和维护Dedecms站点的附件存储结构,希望对您有所帮助。