首页 > CMS > 织梦DEDE > 正文

让织梦dedecms删除文章的同时删除该文章下的图片和附件

2024-07-12 08:49:33
字体:
来源:转载
供稿:网友
这篇文章主要为大家详细介绍了让织梦dedecms删除文章的同时删除该文章下的图片和附件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。

        我们在做网站发布文章的时候,难免需要一些图片等等让文章更丰富,但是在删除的时候却发现只能删除文章内容,里面曾经上传的图片和附件确实还保留在服务器中,占用着我们有限的空间。

        今天织梦模板网就分享一个很实用的功能,删除织梦文章的同时删掉该文章下的图片与附件等文件,有效的节省了后期慢慢排除无用图片和附件的时间还实时节省了一些不必要的存储空间。

实现方法如下: 

1.打开/include/extend.func.php文件,在最后加入如下代码

//解析body数据,获得所有图片的绝对地址 function GetPicsTruePath($body,$litpic) {        $delfiles = array();        //存储图片地址数据         if(!empty($litpic))           {                $litpicpath = GetTruePath();                $litpicpath .= $litpic;                $delfiles[] = $litpicpath;                //缩略图地址        }        preg_match_all("/src=[/"|'|/S|/s]([^ |//|>]*){0,}(([^>]*)/.(gif|jpg|png))/isU",$body,$tmpdata);   $picspath = array_unique($tmpdata[2]);//body中所有图片的地址   foreach($picspath as $tmppath)   {     $path = GetTruePath();//获得绝对路径     $picpath = preg_replace("/[a-zA-z]+:////[^ |//|/s]*/",'',$tmppath);//去掉网址部分     $path .=$picpath;     $delfiles[] = $path;//保存处理后的数据   }   return $delfiles; } //获得文章Body数据  function GetArcBody($aid)  {  global $dsql;  $query = "SELECT js_addonarticle.body FROM xmzy_addonarticle WHERE xmzy_addonarticle.aid = '$aid'";  $row = $dsql->GetOne($query);  if(is_array($row))  return $row;  else  return false;  } //genban.org修改于2010.01.28 //写入日志文件  function WriteToDelFiles($msg)//删除文章的时候会通过此函数记录日志  {  if(empty($msg)) $savemsg="未获得消息";  else $savemsg = $msg;  $errorFile = dirname(__FILE__).'/../data/del_body_file.txt';//删除记录文件  $fp = @fopen($errorFile, 'a');  @fwrite($fp," {$savemsg}");  @fclose($fp);  }

2.打开dede/inc/inc_batchup.php文件,找到:

$arcRow = $dsql->GetOne($arcQuery);

在下边添加:

$arcBodyRow = GetArcBody($aid);

最后找到:

return TRUE;

在这句话上边添加:

//解析Body中的资源,并删除  $willDelFiles = GetPicsTruePath($arcBodyRow['body'],$arcRow['litpic']);$nowtime = time();$executetime = MyDate('Y-m-d H:i:s',$nowtime);//获得执行时间  $msg = " 文章标题:$arcRow[title]";WriteToDelFiles($msg);if(!empty($willDelFiles))  {        foreach($willDelFiles as $file)          {                if(file_exists($file) && !is_dir($file))                  {                        if(unlink($file)) $msg = " 位置:$file 结果:删除成功! 时间:$executetime"; else $msg = " 位置:$file 结果:删除失败! 时间:$executetime";                }                else $msg = " 位置:$file 结果:文件不存! 时间:$executetime";                WriteToDelFiles($msg);        }        //END foreach} else  {        $msg = " 未在Body中解析到数据 Body原始数据:$arcBodyRow[body] 时间:$executetime";        WriteToDelFiles($msg);}

然后保存,这样处理后就实现了删除文章连带当前文章的图片和附件一同删除。

以上就是让织梦dedecms删除文章的同时删除该文章下的图片和附件的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持武林网。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表