为了帮你快速定位和解决问题,我将按照从简到繁、从常见到少见的顺序,为你提供一个详细的排查指南。

第一步:区分问题类型
请明确你的“不显示”具体是哪种情况:
- 上传失败,图片根本没有进入服务器?
- 表单提交后,提示上传失败,或者没有任何反应。
- 问题焦点:上传权限、PHP配置、上传目录权限。
- 上传成功,但在内容页或图集里不显示?
- 后台能看到图片文件(在
/uploads/目录下),但在前台文章页面或图集模块里看不到图片,或者显示为红色叉号或占位图。 - 问题焦点:图片路径错误、标签调用错误、缓存问题。
- 后台能看到图片文件(在
- 上传成功,但在后台“图片管理”里不显示?
- 文件确实在服务器上,但后台的“媒体库”或“图片管理”列表里找不到它。
- 问题焦点:数据库未记录、缩略图生成失败、后台列表查询问题。
请根据你的情况,对照下面的方法进行排查。
第二步:详细排查与解决方案
上传失败(文件根本没上去)
这是最基础的问题,需要检查服务器环境和权限。
检查目录权限 这是最最常见的原因,DedeCMS 需要对几个关键目录拥有写入权限。

-
核心目录:
/uploads/(所有上传文件存放地)/data/(配置文件、缓存等)/dede/(后台管理目录,如果后台上传失败也需要检查)/templets/(模板目录,有时缓存生成也需要权限)
-
如何设置:
- 通过 FTP 或服务器的文件管理器,右键点击这些目录,修改权限为 755。
- 目录内的文件权限设置为 644。
- 如果你的服务器是 Linux,并且用户是
www-data或nginx,确保这些用户对目录有rwx(读、写、执行) 权限,可以使用chown -R www-data:www-data /path/to/your/dedecms和chmod -R 755 /path/to/your/dedecms/uploads来设置。
检查 PHP 上传配置
检查你的 php.ini 文件,确保以下配置没有被限制或设置得过低。
- 文件上传开关:
file_uploads = On
- 上传文件大小限制:
upload_max_filesize = 32M // 根据你的需求调整,32M
- POST 数据大小限制(这个非常重要!):
post_max_size = 33M // 必须大于 upload_max_filesize
- 上传临时目录:
upload_tmp_dir = "/tmp" // 确保这个目录存在且有权限
如何修改 php.ini:
- 位置通常在
/etc/php/7.x/apache2/php.ini或/usr/local/php/etc/php.ini(根据你的PHP安装方式而定)。 - 修改后,需要重启你的 Web 服务器(如 Apache 或 Nginx)才能生效。
检查 .htaccess 文件
如果你的网站运行在 Apache 服务器上,根目录下的 .htaccess 文件可能会限制上传功能。
检查是否有类似 php_flag 的设置禁用了某些功能,或者限制了文件上传类型。
上传成功但前台不显示
这种情况说明文件已经上传,但路径或调用出了问题。
检查图片路径是否正确 这是最可能的原因,DedeCMS 的图片路径分为两种:
-
绝对路径:从网站根目录开始的完整路径,如
/uploads/images/2025/10/abc.jpg,这种路径在网站迁移后可能会失效。 -
相对路径:相对于当前页面的路径,通常用于本地资源。
-
解决方案:
- 登录 FTP,找到你上传的图片,确认它确实在
/uploads/目录下,并记下它的完整路径。 - 在后台编辑文章,切换到 “代码”模式,查看
<img>标签里的src属性。 - 如果路径是错误的(比如指向了不存在的目录),直接在代码里修改为正确的路径,
<img src="/uploads/images/2025/10/abc.jpg" alt="图片">。 - 如果路径是正确的,但就是显示不出来,很可能是浏览器缓存问题,请尝试强制刷新页面(Ctrl + F5 或 Cmd + Shift + R)。
- 登录 FTP,找到你上传的图片,确认它确实在
检查DedeCMS配置
- 网站根目录设置:进入
dede/后台,点击「系统」->「系统基本参数」->「核心设置」。- 检查 “站点根目录” 是否设置正确,应该是你的网站在服务器上的绝对路径,如
/home/wwwroot/yourdomain.com。 - 检查 “网站主页链接” 是否正确。
- 检查 “站点根目录” 是否设置正确,应该是你的网站在服务器上的绝对路径,如
- 附件目录设置:在同一个页面,检查 “附件目录” 是否为
uploads。
检查文章内容/图集标签
- 普通文章图片:确保图片是通过编辑器的“插入图片”功能添加的,而不是手动粘贴的 HTML 代码。
- :
- 需要填写在 ” 文本框里,而不是正文中。
- 检查你的图集模板(通常是
/templets/default/article_image.htm)是否正确调用了图集标签,默认模板通常是没问题的。 - 确认你上传的图片是否成功添加到了图集的列表中。
检查缓存 DedeCMS 有强大的缓存机制,有时缓存会导致旧数据或错误数据被显示。
- 清理方法:进入后台「系统」->「一键更新网站」->「更新HTML」->「更新栏目页/文档页」->「更新所有」。
- 或者,直接删除
/data/cache/目录下的所有缓存文件(谨慎操作,后台刷新后会自动重建)。
检查模板文件 如果你修改过模板,可能是模板代码中引用图片的路径写错了。
- 检查文章模板
article_article.htm和列表模板list_article.htm中,调用文章缩略图{litpic}和文章内容{body}的代码是否正确。
上传成功但后台“图片管理”不显示
这说明文件在服务器上,但数据库里没有记录。
检查缩略图生成 后台的图片列表通常需要缩略图来显示,如果原图上传成功,但缩略图生成失败,列表里可能就看不到。
- 检查缩略图目录权限:
/uploads/allimg/目录需要有写入权限。 - 手动生成缩略图:找到上传的原图,在后台“图片管理”中,尝试选中它,然后看是否有“生成缩略图”的选项,手动生成一次。
- 检查缩略图配置:后台「系统」->「图片标签设置」,检查默认缩略图的尺寸和设置是否合理。
检查数据库记录
- 登录你的数据库管理工具(如 phpMyAdmin)。
- 找到
dede_uploads这张表。 - 查看里面是否有你刚刚上传的图片的记录,如果没有,说明上传过程中向数据库写入数据失败了。
检查上传处理文件 如果数据库完全没有记录,可能是核心的上传处理文件出了问题。
- 检查
/dede/archives_do.php(用于处理文章附件) 和/dede/media_add.php(用于处理媒体库上传) 等文件是否存在,并且没有被误删或修改过。
总结与快速自查清单
如果你觉得以上步骤太繁琐,可以按照这个快速清单顺序检查:
- FTP 检查:
/uploads目录权限是不是 755?文件真的在里面吗? - PHP.ini 检查:
upload_max_filesize和post_max_size设置得够大吗?(比如都设为 32M) - 后台刷新:去后台「系统」->「一键更新网站」->「更新所有」,清空缓存。
- 路径检查:切换到文章代码模式,看
<img>标签的src路径对不对?手动改一下试试。 - 浏览器:按
Ctrl + F5强制刷新页面,清除浏览器缓存。 - 还原默认:如果修改过模板,先还原回默认模板,看是否正常。
如果以上所有方法都试过了问题依旧存在,那么很可能是你的 DedeCMS 版本存在 Bug,或者服务器环境(如 PHP、数据库版本)与 DedeCMS 不兼容,可以考虑升级到最新的稳定版 DedeCMS,或者重装一个干净的 DedeCMS,然后只恢复你的数据和配置文件来排查问题。
