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

要关闭这个功能,最直接、最安全的方法就是禁用这个函数的调用,而不是直接删除函数代码,以免未来升级系统时被覆盖。
修改 article_add.php 文件(发布文章时禁用)
这个方法可以确保在通过后台手动发布文章或使用一键采集功能时,不会下载远程图片。
操作步骤:
-
找到文件: 使用FTP工具或主机文件管理器,登录您的网站服务器,找到以下文件:
/dede/article_add.php(注意:dede是您的后台管理目录,如果修改过,请使用您的实际目录名。)
(图片来源网络,侵删) -
编辑文件: 使用代码编辑器(如 VS Code, Sublime Text, Notepad++ 等)打开
article_add.php文件。 -
定位代码: 在文件中搜索
GetRemoteImage关键字,您会找到类似下面这样的代码行:// 下载远程图片 $body = GetRemoteImage($body, $arcid);
这行代码就是调用远程图片下载功能的地方。
-
注释或删除代码: 将这行代码注释掉(推荐做法,方便以后恢复),在 PHP 中,使用 来注释单行代码。
(图片来源网络,侵删)// // 下载远程图片 // $body = GetRemoteImage($body, $arcid);
或者直接删除这行代码:
// 下载远程图片 // $body = GetRemoteImage($body, $arcid);
-
保存文件: 保存修改后的
article_add.php文件,并上传回服务器,覆盖原文件。
效果: 您再通过后台发布文章时,文章中的远程图片将保持原样,不会被下载到本地。
修改 inc_archives_functions.php 文件(全局禁用采集)
这个方法可以更彻底地禁用远程图片下载功能,不仅影响手动发布,也影响所有通过采集功能(包括本机的“远程采集”和“本机采集”)获取的图片。
操作步骤:
-
找到文件: 找到织梦的核心函数文件:
/dede/inc/inc_archives_functions.php -
编辑文件: 使用代码编辑器打开这个文件。
-
定位代码: 在文件中搜索
function GetRemoteImage,找到这个函数的定义,函数的开头通常是这样的:/** * 获取远程图片并下载到本地 * * @access public * @param string $url 远程图片地址 * @param string $path 本地存储路径 * @return string */ function GetRemoteImage($url, $arcid = '') { // ... 函数内部代码 ... } -
修改函数: 我们不删除整个函数,而是让它在被调用时直接返回,不做任何操作,找到函数体内的第一行代码,在其前面加上
return;。 原函数可能是这样的:function GetRemoteImage($url, $arcid = '') { // 一些判断代码... if (preg_match("#^http://#", $url)) { // ... 下载图片的核心代码 ... } // ... 返回本地路径的代码 ... }修改后,变成这样:
function GetRemoteImage($url, $arcid = '') { // 直接返回,不做任何操作 return; // 以下代码将永远不会被执行 /* if (preg_match("#^http://#", $url)) { // ... 下载图片的核心代码 ... } // ... 返回本地路径的代码 ... */ }注意:为了代码清晰和安全,建议将函数原有的内容用 注释掉,而不是直接删除,这样既能禁用功能,又能保留原始代码结构。
-
保存文件: 保存修改后的
inc_archives_functions.php文件并上传回服务器。
效果: 无论是手动发布还是任何形式的采集,远程图片都不会被下载,文章内容将保留原始的远程图片链接。
修改采集规则(针对特定采集任务)
如果您只是想关闭某一个特定采集任务的远程图片下载,而保留其他任务的功能,可以在设置采集规则时进行操作。
操作步骤:
- 进入织梦后台 -> 采集 -> 采集管理。
- 找到您要修改的采集任务,点击后面的 [修改] 或 [选择] 按钮。
- 在采集任务的设置页面,找到 “远程保存选项” 或类似的设置项。
- 取消勾选 “下载远程图片” 或 “把远程图片保存到本地” 这个选项。
- 保存修改。
效果: 只有这个特定的采集任务在运行时不会下载远程图片,其他采集任务和手动发布文章的功能不受影响。
重要注意事项
-
备份!备份!备份! 在修改任何核心文件之前,请务必备份原始文件,这是防止操作失误导致网站无法访问的黄金法则。
-
文件权限 确保您有修改这些文件的权限,通常需要将文件权限设置为
644,目录权限设置为755。 -
网站性能 关闭远程图片下载后,网站会直接引用外部图片,这虽然减轻了您服务器的存储和带宽压力,但网站加载速度会部分依赖于外部图片服务器的速度和稳定性,如果外链图片服务器速度慢或宕机,您网站上的相应图片也无法显示。
-
版权问题 直接使用他人服务器上的图片可能涉及版权问题,请确保您有权使用这些图片,或者已经获得了授权。
-
系统升级 如果您未来对织梦系统进行版本升级,升级包很可能会覆盖您修改过的核心文件(如
article_add.php和inc_archives_functions.php),届时,您需要重新执行上述修改步骤才能再次禁用该功能。
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
方法一 (article_add.php) |
操作简单,只影响手动发布和一键采集,不影响其他采集规则。 | 无法禁用通过特定采集规则进行的远程图片下载。 | 主要用于日常手动发布文章时,希望保持外链。 |
方法二 (inc_archives_functions.php) |
效果最彻底,一键禁用所有场景下的远程图片下载。 | 修改核心文件,升级后需重做;网站性能依赖外部服务器。 | 希望彻底放弃远程图片下载功能,全部使用外链。 |
| 方法三 (采集规则设置) | 精准控制,不影响其他功能。 | 需要为每个采集任务单独设置。 | 只需要对特定采集任务进行控制。 |
对于大多数用户来说,方法一 是一个平衡的选择,既能满足关闭手动发布时图片下载的需求,又保留了通过采集规则灵活控制的余地,如果您确定不再需要任何远程图片下载功能,方法二 则是最终的解决方案。
