如何在DEDE 5.6中同时删除文章及其附件?

DEDE 5.6中,要删除文章同时删除附件,可以在删除文章时勾选“删除附件”选项。

在DEDECMS 5.6中,删除文章的同时删除附件的方法主要涉及对系统文件的修改,具体步骤如下:

如何在DEDE 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

(0)
未希的头像未希新媒体运营
上一篇 2024-10-10 18:49
下一篇 2024-10-10 18:53

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入