在DEDECMS 5.6中,删除文章的同时删除附件的方法主要涉及对系统文件的修改,具体步骤如下:
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("/[azAz]+://[^ |/|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; } //记录日志 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('Ymd 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); }
完成以上步骤后,即可实现在删除文章时同时删除该文章下的图片和附件,从而节省存储空间和管理时间。
FAQs
1、Q: 为什么需要手动删除文章的图片和附件?
A: 因为DEDECMS默认情况下只删除文章本身,而不会删除文章中引用的图片和附件,这些文件会残留在服务器上,占用不必要的存储空间,通过手动删除,可以释放这些空间并保持服务器的整洁。
2、Q: 修改系统文件是否会影响网站的其他功能?
A: 如果按照上述步骤准确修改,并且备份了原始文件以防万一,那么这种修改通常不会影响网站的其他功能,它只会增加一个额外的功能,即在删除文章时自动删除相关的图片和附件,任何对系统文件的修改都存在一定的风险,因此在操作前建议进行充分的测试和备份。
步骤 | 操作描述 | 说明 |
1 | 打开织梦内容管理系统(DEDE)后台 | 首先登录到DEDE管理后台,选择相应的网站进行操作。 |
2 | 进入文章管理页面 | 在后台左侧菜单中找到“文章管理”模块,点击进入。 |
3 | 选择要删除的文章 | 在文章列表中找到需要删除的文章,点击进入编辑页面。 |
4 | 查看文章附件 | 在文章内容编辑页面,查看是否存在附件,附件通常以文件形式存在,可以通过点击附件名称来查看。 |
5 | 删除文章 | 点击编辑页面上的“删除”按钮,确认删除操作。 |
6 | 删除附件 | 在删除文章的同时,检查附件是否已经显示为可删除状态,如果附件可以被删除,直接点击附件旁边的删除按钮,如果附件无法直接删除,需要进入附件所在的目录手动删除。 |
7 | 清空缓存 | 删除文章和附件后,为了确保网站内容的一致性,可以手动清空网站缓存。 |
8 | 保存更改 | 确认删除操作后,保存更改,并退出编辑页面。 |
注意:
在删除附件之前,请确保已经备份了附件,以防数据丢失。
如果文章附件较多,建议先备份整个文章目录,然后再进行删除操作。
在删除附件时,如果附件被其他文章引用,删除操作可能会导致其他文章出现错误,请谨慎操作。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1199568.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复