在使用DedeCMS进行内容采集时,图片的存储管理是一个重要环节。默认情况下,DedeCMS会按照每天一个目录的方式存储采集到的图片。然而,这种方式可能会导致备份时出现过多的目录,增加了管理难度。因此,将图片按月存放可以有效优化这一问题。
为了实现按月存放图片的功能,我们需要对DedeCMS的代码进行一些修改。以下是具体的操作步骤:
首先,打开include/dedecollection.class.php文件,找到以下代码片段:
//获得下载媒体的随机名称
function GetRndName($url,$v)
{
global $cfg_image_dir,$cfg_dir_purview;
$this->mediaCount++;
$mnum = $this->mediaCount;
$timedir = "c".MyDate("ym(修改此处,去掉原有的d即可按月存放,同理以你自己喜欢的来设定吧)",time());
//存放路径
$fullurl = preg_replace("//{1,}/","/",$cfg_image_dir."/");
if(!is_dir($GLOBALS['cfg_basedir']."/$fullurl"))
{
MkdirAll($GLOBALS['cfg_basedir']."/$fullurl",$cfg_dir_purview);
}
$fullurl = $fullurl.$timedir."/";
if(!is_dir($GLOBALS['cfg_basedir']."/$fullurl"))
{
MkdirAll($GLOBALS['cfg_basedir']."/$fullurl",$cfg_dir_purview);
}
接下来,我们需要修改后台及远程下载的存放方法。打开后台目录dede(默认为dede,如果你改过,请找到对应的文件夹),然后打开文件media_add.php,找到如下代码:
$dpath = MyDate(“ymd”,$uptime);
将其修改为:
$dpath = MyDate(“ym”,$uptime);
这样,在后台上传文件时就会按月存放了。
最后,为了让“下载远程图片”功能也按月存放,我们需要打开文件 dede/inc/inc_archives_functios.php,找到如下代码:
$imgUrl = $cfg_uploaddir.’/’.MyDate(“ymd”,time());
将其修改为:
$imgUrl = $cfg_uploaddir.’/’.MyDate(“ym”,time());
通过以上步骤,您可以成功地将DedeCMS的图片存储方式从按天改为按月。这不仅简化了目录结构,还提高了备份和管理的效率。
请注意,在进行任何代码修改之前,建议先备份相关文件,以免出现意外情况。