织梦为何关闭远程图片下载?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 织梦建站 正文

核心原理

织梦的远程图片下载功能,主要是在发布文章或采集文章时,通过一个函数 GetRemoteImage() 来实现的,它会自动分析文章内容中的 <img> 标签,找到 src 属性为远程地址(http://https://)的图片,然后将这些图片下载到您自己的服务器上,并替换为本地路径。

织梦关闭远程图片下载
(图片来源网络,侵删)

要关闭这个功能,最直接、最安全的方法就是禁用这个函数的调用,而不是直接删除函数代码,以免未来升级系统时被覆盖。


修改 article_add.php 文件(发布文章时禁用)

这个方法可以确保在通过后台手动发布文章或使用一键采集功能时,不会下载远程图片。

操作步骤:

  1. 找到文件: 使用FTP工具或主机文件管理器,登录您的网站服务器,找到以下文件: /dede/article_add.php (注意:dede 是您的后台管理目录,如果修改过,请使用您的实际目录名。)

    织梦关闭远程图片下载
    (图片来源网络,侵删)
  2. 编辑文件: 使用代码编辑器(如 VS Code, Sublime Text, Notepad++ 等)打开 article_add.php 文件。

  3. 定位代码: 在文件中搜索 GetRemoteImage 关键字,您会找到类似下面这样的代码行:

    // 下载远程图片
    $body = GetRemoteImage($body, $arcid);

    这行代码就是调用远程图片下载功能的地方。

  4. 注释或删除代码: 将这行代码注释掉(推荐做法,方便以后恢复),在 PHP 中,使用 来注释单行代码。

    织梦关闭远程图片下载
    (图片来源网络,侵删)
    // // 下载远程图片
    // $body = GetRemoteImage($body, $arcid);

    或者直接删除这行代码:

    // 下载远程图片
    // $body = GetRemoteImage($body, $arcid);
  5. 保存文件: 保存修改后的 article_add.php 文件,并上传回服务器,覆盖原文件。

效果: 您再通过后台发布文章时,文章中的远程图片将保持原样,不会被下载到本地。


修改 inc_archives_functions.php 文件(全局禁用采集)

这个方法可以更彻底地禁用远程图片下载功能,不仅影响手动发布,也影响所有通过采集功能(包括本机的“远程采集”和“本机采集”)获取的图片。

操作步骤:

  1. 找到文件: 找到织梦的核心函数文件: /dede/inc/inc_archives_functions.php

  2. 编辑文件: 使用代码编辑器打开这个文件。

  3. 定位代码: 在文件中搜索 function GetRemoteImage,找到这个函数的定义,函数的开头通常是这样的:

    /**
     *  获取远程图片并下载到本地
     *
     * @access    public
     * @param     string  $url  远程图片地址
     * @param     string  $path  本地存储路径
     * @return    string
     */
    function GetRemoteImage($url, $arcid = '')
    {
        // ... 函数内部代码 ...
    }
  4. 修改函数: 我们不删除整个函数,而是让它在被调用时直接返回,不做任何操作,找到函数体内的第一行代码,在其前面加上 return;。 原函数可能是这样的:

    function GetRemoteImage($url, $arcid = '')
    {
        // 一些判断代码...
        if (preg_match("#^http://#", $url))
        {
            // ... 下载图片的核心代码 ...
        }
        // ... 返回本地路径的代码 ...
    }

    修改后,变成这样:

    function GetRemoteImage($url, $arcid = '')
    {
        // 直接返回,不做任何操作
        return;
        // 以下代码将永远不会被执行
        /*
        if (preg_match("#^http://#", $url))
        {
            // ... 下载图片的核心代码 ...
        }
        // ... 返回本地路径的代码 ...
        */
    }

    注意:为了代码清晰和安全,建议将函数原有的内容用 注释掉,而不是直接删除,这样既能禁用功能,又能保留原始代码结构。

  5. 保存文件: 保存修改后的 inc_archives_functions.php 文件并上传回服务器。

效果: 无论是手动发布还是任何形式的采集,远程图片都不会被下载,文章内容将保留原始的远程图片链接。


修改采集规则(针对特定采集任务)

如果您只是想关闭某一个特定采集任务的远程图片下载,而保留其他任务的功能,可以在设置采集规则时进行操作。

操作步骤:

  1. 进入织梦后台 -> 采集 -> 采集管理
  2. 找到您要修改的采集任务,点击后面的 [修改][选择] 按钮。
  3. 在采集任务的设置页面,找到 “远程保存选项” 或类似的设置项。
  4. 取消勾选 “下载远程图片”“把远程图片保存到本地” 这个选项。
  5. 保存修改。

效果: 只有这个特定的采集任务在运行时不会下载远程图片,其他采集任务和手动发布文章的功能不受影响。


重要注意事项

  1. 备份!备份!备份! 在修改任何核心文件之前,请务必备份原始文件,这是防止操作失误导致网站无法访问的黄金法则。

  2. 文件权限 确保您有修改这些文件的权限,通常需要将文件权限设置为 644,目录权限设置为 755

  3. 网站性能 关闭远程图片下载后,网站会直接引用外部图片,这虽然减轻了您服务器的存储和带宽压力,但网站加载速度会部分依赖于外部图片服务器的速度和稳定性,如果外链图片服务器速度慢或宕机,您网站上的相应图片也无法显示。

  4. 版权问题 直接使用他人服务器上的图片可能涉及版权问题,请确保您有权使用这些图片,或者已经获得了授权。

  5. 系统升级 如果您未来对织梦系统进行版本升级,升级包很可能会覆盖您修改过的核心文件(如 article_add.phpinc_archives_functions.php),届时,您需要重新执行上述修改步骤才能再次禁用该功能。

方法 优点 缺点 适用场景
方法一 (article_add.php) 操作简单,只影响手动发布和一键采集,不影响其他采集规则。 无法禁用通过特定采集规则进行的远程图片下载。 主要用于日常手动发布文章时,希望保持外链。
方法二 (inc_archives_functions.php) 效果最彻底,一键禁用所有场景下的远程图片下载。 修改核心文件,升级后需重做;网站性能依赖外部服务器。 希望彻底放弃远程图片下载功能,全部使用外链。
方法三 (采集规则设置) 精准控制,不影响其他功能。 需要为每个采集任务单独设置。 只需要对特定采集任务进行控制。

对于大多数用户来说,方法一 是一个平衡的选择,既能满足关闭手动发布时图片下载的需求,又保留了通过采集规则灵活控制的余地,如果您确定不再需要任何远程图片下载功能,方法二 则是最终的解决方案。

-- 展开阅读全文 --
头像
织梦TAG如何添加缩略图?
« 上一篇 今天
织梦手机站如何更新?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]