如何在Dede中删除文档及其附带图片?

DedeCMS中,删除文档时会自动删除文章中的图片。

DedeCMS中,删除文档的同时删除文章中的图片是一项非常实用的功能,这不仅有助于节省服务器空间,还能避免手动清理无用图片的麻烦,以下是实现这一功能的详细步骤和相关代码示例:

如何在Dede中删除文档及其附带图片?

第一步:创建extend.func.php文件

1、创建文件:在/include目录下创建一个名为extend.func.php的文件。

2、编写函数:将以下内容保存到extend.func.php文件中,这些函数用于解析文章的body数据,获得所有图片的绝对地址,并记录日志。

// 解析body数据,获得所有图片的绝对地址
function GetPicsTruePath($body, $litpic) {
    $delfiles = array(); // 存储图片地址数据
    if (!empty($litpic)) {
        $litpicpath = GetTruePath();
        $litpicpath .= $litpic;
        $delfiles[] = $litpicpath; // 缩略图地址
    }
    preg_match_all("/src=["|'|S|s]([^ title=liehuo.net |/|>]*){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 dede_addonarticle.body FROM dede_addonarticle WHERE dede_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, "r
{$savemsg}");
    @fclose($fp);
}

第二步:修改inc_batchup.php文件

1、打开文件:找到并打开/dede/inc/inc_batchup.php文件。

如何在Dede中删除文档及其附带图片?

2、添加代码:在$arcRow = $dsql>GetOne($arcQuery);下方添加以下代码:

$arcBodyRow = GetArcBody($aid);

3、继续添加代码:在return true;上方添加以下代码:

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

FAQs

Q1: 如何验证是否成功删除了文章及其图片?

A1: 你可以通过查看位于/data/目录下的日志文件del_body_file.txt来验证删除操作的结果,该文件会记录每次删除操作的详细信息,包括文章标题、图片路径、删除结果及时间。

如何在Dede中删除文档及其附带图片?

Q2: 如果在删除过程中遇到图片无法删除的情况怎么办?

A2: 如果某个图片文件无法删除,可能是由于权限问题或文件被占用,你可以检查文件的权限设置,确保PHP进程有权限删除该文件,如果问题依然存在,可以尝试手动删除该文件或者联系系统管理员解决。

步骤 操作 说明
1 打开DedeCMS后台管理 登录到DedeCMS后台,找到文档管理模块。
2 选择文档 在文档列表中找到需要删除的文档,点击选择。
3 编辑文档 点击“编辑”按钮,进入文档编辑页面。
4 选中图片 在文档内容中找到需要删除的图片,点击选中。
5 删除图片 按住鼠标左键,拖动图片到回收站或者右键点击图片选择“删除”。
6 保存文档 点击“保存”按钮,保存对文档所做的修改。
7 删除文档 返回文档列表页面,选中该文档,点击“删除”按钮。
8 确认删除 在弹出的确认窗口中选择“确定”,确认删除文档。
9 删除图片 在删除文档的同时,系统会自动删除文档中引用的所有图片。
10 完成操作 文档及其中的图片已经被成功删除。

步骤是基于DedeCMS后台操作的通用指南,具体操作可能因DedeCMS版本或配置的不同而有所差异。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1206002.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-10-12 06:57
下一篇 2024-10-12 07:00

相关推荐

  • 如何使用DedeCMS创建并管理我的网站?

    您的网站使用DedeCMS(织梦内容管理系统)构建,这是一个流行的开源PHP网站管理平台,适用于创建和管理动态网站。如果您需要进一步的帮助,请提供更多详细信息。

    2024-11-20
    012
  • DEDECMS中的时间显示如何设置为多少分钟前?

    您的问题似乎不完整,请提供更详细的信息或上下文,以便我能更准确地回答您。如果您是在询问dedecms(一个内容管理系统)的安装、配置、使用或其他相关问题,请具体说明需要了解的内容,我会很乐意为您提供帮助。

    2024-11-08
    020
  • Dede如何查看文章数量?

    在 DedeCMS(织梦内容管理系统)中,查看文章数量的方法如下:,,1. 登录后台管理系统。,2. 进入“内容管理”模块。,3. 选择“文章管理”。,4. 在右侧列表中即可看到所有文章的标题、作者、发布时间等信息。

    2024-11-07
    019
  • 织梦DedeCMS核心目录知识有哪些要点?

    织梦DedeCMS核心目录知识大全背景介绍织梦DedeCMS是一款流行的开源内容管理系统(CMS),广泛用于企业建站和信息管理,了解其目录结构和文件功能对于开发者进行二次开发、安全管理和界面定制至关重要,本文将详细介绍织梦DedeCMS的核心目录结构及其主要文件的作用,以帮助开发者更好地理解和使用该CMS,目录……

    2024-11-02
    0307

发表回复

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

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