- 上传图片时自动生成缩略图(最常用)
- 手动为已有图片生成缩略图
核心原理
DedeCMS 生成缩略图主要依靠 PHP 的 GD 库或 ImageMagick 扩展,在后台设置中,你只需要配置好缩略图的尺寸、规则,DedeCMS 会在你上传图片时,自动调用这些功能,生成符合规则的缩略图文件,并保存在你指定的目录下。
上传图片时自动生成缩略图(推荐)
这是最标准、最常用的方法,你需要正确配置后台的系统参数,并确保你的代码(如文章内容页、列表页)正确地调用了缩略图。
步骤 1:检查并确保 GD 库已安装
GD 库是 PHP 处理图片的扩展,在绝大多数虚拟主机或服务器上都是默认开启的,你可以通过创建一个 phpinfo.php 文件,内容为 <?php phpinfo(); ?>,然后上传到网站根目录访问,在页面中搜索 GD,如果看到类似 GD Support => enabled 的字样,就说明 GD 库已安装。
步骤 2:后台系统参数设置
这是最关键的一步。
-
登录你的 DedeCMS 后台。
-
进入 “系统” -> “系统基本参数”。
-
在左侧菜单中,点击 “图片设置”。
-
你需要配置以下几个核心参数:
-
(1) 缩略图默认宽度 和 缩略图默认高度
- 这是你希望生成的缩略图的最大尺寸,宽度设置为
200,高度设置为150。 - 重要提示:这里的尺寸是“最大”尺寸,DedeCMS 会根据原始图片的宽高比,按比例进行缩放,以保证图片不会被拉伸变形,一张 400x300 的图片,会缩放到 200x150;而一张 800x100 的图片,会缩放到 200x25(高度按比例缩小)。
- 这是你希望生成的缩略图的最大尺寸,宽度设置为
-
(2) 缩略图保存路径
- 这是缩略图文件存放的目录,通常使用系统默认的
/uploads/thumb/即可,DedeCMS 会自动创建这个目录。 - 安全建议:不要将缩略图路径设置为网站根目录(如 ),以防安全问题。
- 这是缩略图文件存放的目录,通常使用系统默认的
-
(3) 缩略图文件名前缀
- 为了区分原图和缩略图,缩略图文件名通常会加上一个前缀,默认是
small_,原图abc.jpg,生成的缩略图就是small_abc.jpg。
- 为了区分原图和缩略图,缩略图文件名通常会加上一个前缀,默认是
-
(4) 是否启用远程站点图片本地化
这个选项和缩略图生成关系不大,但如果你的文章内容中包含外部网站的图片,开启此选项可以将这些图片下载到你的服务器上。
-
(5) 水印设置
如果你需要为图片(包括缩略图)添加水印,可以在这里配置,位置、图片/文字水印等。
-
-
设置完成后,点击 “保存” 按钮。
步骤 3:发布文章时上传图片并生成缩略图
- 进入 “核心” -> “内容发布” -> “添加文档”。
- 在文章编辑页,找到 “图片上传” 功能。
- 点击“浏览”选择你本地的图片文件,然后上传。
- 上传成功后,你会看到上传的图片列表,系统会自动根据你在“图片设置”中配置的规则,生成缩略图,你可以在列表中看到缩略图的预览。
- 将光标定位到文章内容中需要插入图片的位置,然后点击“已上传图片列表”中的图片,即可将图片(通常是带缩略图引用的HTML代码)插入到文章中。
- 填写文章标题、栏目等信息后,点击“保存”即可。
步骤 4:在模板中调用缩略图
缩略图生成后,还需要在网站的模板文件中正确调用,才能在前台页面显示。
-
在文章列表页(
list_article.htm) 调用标签:[field:litpic/]这个标签会输出文章的缩略图路径,通常配合<img>标签使用:<img src="[field:litpic/]" alt="[field:title function='html2text(@me)'/]" />
-
页(
article_article.htm) 调用标签:{dede:field name='litpic'/}同样,配合<img>标签使用:<img src="{dede:field name='litpic'/}" alt="{dede:field.title function='html2text(@me)'/}" />
手动为已有图片生成缩略图
如果你网站有很多历史文章,里面的图片没有生成缩略图,可以使用 DedeCMS 提供的批量处理功能。
- 登录 DedeCMS 后台。
- 进入 “系统” -> “数据库备份/恢复”。
- 在这个页面,找到 “文档HTML更新” 功能(注意,虽然名字是“HTML更新”,但它也包含批量处理缩略图的功能)。
- 点击进入后,你会看到批量处理的选项。
- 选择你需要处理的栏目(可以选择“所有栏目”)。
- 在处理选项中,确保勾选了 “选择批量生成缩略图” 这个选项。
- 你还可以选择是否生成HTML、是否更新文章内容等。
- 点击“开始执行”按钮,系统会遍历你选定的栏目中的所有文章,为其中没有缩略图的图片,根据你之前在“图片设置”中的规则,批量生成缩略图。
注意:如果文章数量非常多,这个过程可能会比较耗时,需要耐心等待。
常见问题与排查
如果缩略图没有生成或显示,请按以下步骤排查:
-
目录权限问题
- 检查原图目录:确保你上传图片的目录(通常是
/uploads/及其子目录)有写入权限(755或777,755是更安全的选择)。 - 检查缩略图目录:确保缩略图保存路径(如
/uploads/thumb/)有写入权限。
- 检查原图目录:确保你上传图片的目录(通常是
-
GD 库问题
- 如前所述,通过
phpinfo.php确认 GD 库是否开启,如果未开启,需要联系你的主机商或手动修改php.ini文件,去掉extension=gd前面的分号 ,然后重启 PHP 服务。
- 如前所述,通过
-
路径问题
- 确认“图片设置”中的“缩略图保存路径”是正确的。
- 确认模板中调用的标签(
[field:litpic/]或{dede:field.name='litpic'/})是正确的,并且没有拼写错误。
-
服务器环境问题
- 某些特殊的服务器环境(如 Nginx + PHP-FPM)可能会有路径解析问题,导致缩略图无法生成或显示,可以尝试将缩略图路径从相对路径改为绝对路径(如
/uploads/thumb/small_xxx.jpg)。
- 某些特殊的服务器环境(如 Nginx + PHP-FPM)可能会有路径解析问题,导致缩略图无法生成或显示,可以尝试将缩略图路径从相对路径改为绝对路径(如
-
手动上传的图片
- 如果你是通过 FTP 等方式直接将图片上传到服务器,然后手动在文章中插入
<img>标签,DedeCMS 是不会自动为这些图片生成缩略图的,必须通过后台的“图片上传”功能或“批量生成缩略图”功能来处理。
- 如果你是通过 FTP 等方式直接将图片上传到服务器,然后手动在文章中插入
| 步骤 | 关键操作 | 说明 |
|---|---|---|
| 准备环境 | 检查 GD 库 | 确保 PHP 支持 GD 图像处理库。 |
| 后台配置 | 系统 -> 系统基本参数 -> 图片设置 | 设置缩略图的尺寸、保存路径、文件名前缀等核心参数。 |
| 上传图片 | 内容发布 -> 添加文档 -> 图片上传 | 在发布文章时,通过后台的图片上传功能上传图片,系统会自动生成缩略图。 |
| 前台调用 | 在模板中使用标签 | 在列表页 ([field:litpic/]) 和内容页 ({dede:field.name='litpic'}/) 中调用缩略图标签。 |
| 批量处理 | 系统 -> 数据库备份/恢复 -> 文档HTML更新 | 为历史文章批量生成缩略图。 |
遵循以上步骤,你就可以顺利地在 DedeCMS 中生成和管理缩略图了。
