DedeCMS 5.7 自带的 UEditor 本身并不直接支持图片上传时自动添加服务器端水印,这个功能需要我们修改 UEditor 的后端处理文件,并配合 DedeCMS 自带的水印功能来实现。

整个过程分为以下几个步骤:
- 确认并开启 DedeCMS 全局水印功能
- 修改 UEditor 的图片上传处理文件
- 测试功能
第一步:确认并开启 DedeCMS 全局水印功能
在修改 UEditor 之前,请确保 DedeCMS 的系统全局水印功能是开启的,因为 UEditor 将会调用 DedeCMS 的核心函数来处理水印。
-
登录您的 DedeCMS 后台。
-
进入【系统】->【系统基本参数】。
(图片来源网络,侵删) -
在左侧菜单中找到【附件设置】,点击进入。
-
在“附件设置”页面中,找到以下几项关键设置,并根据您的需求进行配置:
- 是否附加水印: 选择“是”,这是开启水印功能的总开关。
- 水印类型: 选择您想要的水印类型,通常是“图片水印”。
- 水印位置: 选择水印在图片上的位置,如“右下角”。
- 水印图片: 这是最关键的一步! 点击后面的“浏览”按钮,选择一张已经上传到您网站目录下的图片作为水印图片,您可以上传一个
logo.png到/images/目录下,然后在这里选择它。 - 水印透明度: 调整一个合适的值,通常在 50 到 80 之间,这样不会完全遮挡原图。
- 附加水印缩略图: 选择“是”,这样生成的缩略图也会带上水印。
-
点击【保存设置】按钮。
完成这一步后,DedeCMS 的系统就已经具备了为上传的图片(包括文章图片、图集等)添加水印的能力,我们需要让 UEditor 在处理图片上传时也调用这个功能。

第二步:修改 UEditor 的图片上传处理文件
UEditor 的图片上传功能由其 PHP 后端文件处理,我们需要修改这个文件,使其在图片上传后,调用 DedeCMS 的水印函数。
-
找到文件 UEditor 的 PHP 后端文件通常位于您的网站根目录下的
/include/ueditor/php/目录中,我们需要修改的是Uploader.class.php文件。文件路径:
/dede/include/ueditor/php/Uploader.class.php -
修改代码 用代码编辑器(如 VS Code, Sublime Text, Notepad++ 等)打开
Uploader.class.php文件。我们需要找到文件保存成功后的位置,然后插入调用 DedeCMS 水印函数的代码。
在文件中搜索
$this->stateInfo = $this->stateMap[0];或类似的代码,这通常是文件保存成功的标志,在这行代码之前,添加以下代码:// 在文件保存成功后,调用DedeCMS的水印函数 // 引入DedeCMS的watermark.php文件 require_once(dirname(dirname(__FILE__)) . '/../config_watermark.php'); // 调用DedeCMS的AddPics函数,它会在保存图片后自动添加水印 // 参数1: 图片的完整路径 // 参数2: 缩略图路径,我们这里没有生成缩略图,所以传空 // 参数3: 原图名称 AddPics($this->filePath, '', $this->oriName);
代码解释:
require_once(dirname(dirname(__FILE__)) . '/../config_watermark.php');: 这行代码引入了 DedeCMS 的水印配置和函数文件。dirname(__FILE__)指向当前文件所在的目录, 表示返回上一级目录,这样就能准确地定位到/include/目录下的config_watermark.php文件。请确保这个路径是正确的。AddPics($this->filePath, '', $this->oriName);: 这是 DedeCMS 的核心函数,用于处理图片并添加水印。$this->filePath: 这是 UEditor 上传后图片的完整保存路径,/uploads/image/20251010/xxx.jpg。- 第二个参数是缩略图路径,因为我们是在原图上直接加水印,所以这里留空。
$this->oriName: 原始文件名。
修改后的代码片段示例:
// ... 原有代码 ... if (!$this->stateInfo) { $this->stateInfo = $this->stateMap[0]; // 在文件保存成功后,调用DedeCMS的水印函数 // 引入DedeCMS的watermark.php文件 require_once(dirname(dirname(__FILE__)) . '/../config_watermark.php'); // 调用DedeCMS的AddPics函数,它会在保存图片后自动添加水印 // 参数1: 图片的完整路径 // 参数2: 缩略图路径,我们这里没有生成缩略图,所以传空 // 参数3: 原图名称 AddPics($this->filePath, '', $this->oriName); } // ... 原有代码 ... -
保存文件 保存对
Uploader.class.php文件的修改。
第三步:测试功能
所有修改都已完成,我们来测试一下是否生效。
- 清除缓存:为了确保修改生效,建议清空一下 DedeCMS 的后台缓存,以及浏览器缓存。
- 进入文章编辑页:在 DedeCMS 后台,【核心】->【内容发布管理】->【添加文档】。
- 插入图片:点击编辑器中的“图片”按钮(一个山丘图标)。
- 上传图片:在弹出的图片上传窗口中,选择一张本地图片进行上传。
- 检查结果:
- 上传成功后:图片会插入到编辑器中。
- 检查服务器文件:登录您的服务器/FTP,找到 UEditor 配置的图片上传目录(默认是
/uploads/),找到刚刚上传的图片。 - 检查水印:用图片查看器打开服务器上的这张图片,如果能看到您在第一步设置的水印(logo),那么恭喜您,功能已经成功实现了!
常见问题与注意事项
-
图片没有水印?
- 路径错误:最常见的问题是
require_once的路径不正确,请再次核对config_watermark.php的文件路径是否与代码中的一致。 - 函数不存在:确保
AddPics函数在config_watermark.php文件中存在并且没有被注释掉。 - 权限问题:确保网站用户对上传目录(如
/uploads/)有写入权限,并且对config_watermark.php文件有读取权限。 - GD库未开启:服务器必须开启 PHP 的 GD 库,这是处理图片的基础,可以通过
phpinfo()函数来检查。 - 水印图片路径错误:在 DedeCMS 后台设置的水印图片路径必须是相对于网站根目录的有效路径,并且该图片必须真实存在。
- 路径错误:最常见的问题是
-
水印位置和样式不理想? 您可以在 DedeCMS 后台的【附件设置】中调整“水印位置”和“水印透明度”等参数,这些修改会立即生效,无需再次修改代码。
-
安全性考虑:
- 确保
/include/目录的执行权限被关闭,防止恶意用户直接访问config_watermark.php等敏感文件。 - 定期检查您的网站文件,确保没有异常修改。
- 确保
通过以上步骤,您就可以成功地为 DedeCMS 5.7 的百度编辑器(UEditor)添加图片上传自动加水印的功能了。
