问题根源分析
图片上传后不显示,无非是以下几种情况:

(图片来源网络,侵删)
- 图片文件本身有问题:上传失败,文件损坏或未生成。
- 图片路径错误:代码中引用的路径和图片实际存放的路径不一致。
- 服务器权限问题:Web服务器(如Apache/Nginx)没有权限读取或执行图片所在的目录。
- 服务器配置问题:PHP或服务器配置限制了上传功能或解析图片。
- 程序代码或数据库问题:DedeCMS程序本身存在Bug,或数据库中存储的图片信息有误。
系统化排查与解决步骤
请按照以下步骤逐一排查,大概率能找到问题所在。
第一步:基础检查(最常见的原因)
检查图片是否真的上传成功了
- 方法:登录您的FTP工具或服务器的文件管理器,找到DedeCMS的图片上传目录。
- 默认目录通常是:
/uploads/(有时在/dede/uploads/下)。 - 检查该目录及其子目录(如
allimg/)下,是否有您刚刚上传的图片文件。
- 默认目录通常是:
- 如果文件存在:说明文件上传成功,问题出在“显示”环节,请继续往下排查。
- 如果文件不存在:说明文件根本没有上传成功,请重点检查 第二步 和 第三步。
检查图片的“绝对路径”是否正确 这是最最常见的原因!DedeCMS在调用图片时,需要一个完整的、可被外部访问的URL路径。
- 方法:
- 在后台找到那条有问题的图集文章,点击“编辑”。
- 编辑器中,找到
[field:imglink/]或类似标签,点击“预览”或直接查看HTML源码,看看它生成的图片链接是什么。 - 复制这个链接,在浏览器的新标签页中打开它。
- 如果链接能正常打开图片:说明路径本身没问题,可能是CSS样式或JS缓存问题。
- 如果链接打不开(404 Not Found 或直接下载文件):恭喜,您找到了核心问题! 问题就是 路径错误。
检查并修正图片路径 如果上一步发现问题,请按以下方法修正:

(图片来源网络,侵删)
-
后台自动修正(推荐)
- 登录织梦后台。
- 进入 “系统” -> “系统基本参数” -> “核心设置”。
- 找到 “附件目录” 和 “站点根目录” 这两项,确保它们是正确的。
- 保存后,进入 “系统” -> “数据库备份/恢复” -> “数据修复”。
- 选择
dede_archives(文章表) 和dede_addonarticle(附加表,如果图集是独立模型也可能是其他表),点击“开始修复”,织梦会尝试自动修正数据库中的图片路径。
-
手动修改配置文件
- 打开
/include/config_base.php文件。 - 找到
$cfg_cmspath和$cfg_cmsurl这两个变量。 - 确保它们的值是正确的。
$cfg_cmspath = '/您的网站根目录';通常是 或/wwwroot/等,取决于您的服务器环境。$cfg_cmsurl = 'http://您的域名.com';必须是完整的、带http://或https://的域名。
- 保存文件并覆盖服务器上的原文件。
- 打开
-
修改调用标签 如果您只是想在特定页面调用图片,可以直接修改模板文件中的标签,使用更可靠的路径。 在列表页或内容页,将:
[field:imglink/]修改为:[field:litpic/](调用文章缩略图) 或者直接使用:<img src="{dede:field name='litpic'/}" alt="{dede:field name='title'/}" />
第二步:服务器与权限检查
如果第一步检查后图片文件不存在,或者路径修正后依然无效,请检查服务器环境。

(图片来源网络,侵删)
检查目录权限
Web服务器(如 www 或 nginx 用户)需要有权限读写上传目录。
- 方法:通过FTP或SSH连接服务器,将
/uploads/目录及其所有子目录的权限设置为 755。 - 将上传目录中的文件权限设置为 644。
- 注意:不要将目录权限设置为777,这会带来严重的安全风险,如果必须,请设置完上传任务后立即改回755。
检查PHP上传配置 可能PHP限制了上传大小或相关功能。
- 方法:在服务器上创建一个名为
info.php的文件,内容为<?php phpinfo(); ?>,然后通过浏览器访问它,查看File Uploads部分。 - 关注以下几项:
file_uploads: 必须为On。upload_max_filesize: 上传文件的最大限制,如8M。post_max_size: POST请求的最大限制,这个值必须大于或等于upload_max_filesize。max_execution_time和max_input_time: 脚本执行和输入的时间限制,上传大文件时可能需要调大。
- 修改方法:找到服务器的
php.ini文件(通常在/etc/php/7.x/apache2/或类似路径),修改上述配置,然后重启Apache或PHP-FPM服务。
检查服务器软件配置(Nginx/Apache)
- Nginx用户请注意:Nginx默认不允许在URL中访问
uploads等目录,您需要在Nginx的配置文件中添加一条规则,允许访问上传目录。location ~ ^/uploads/ { # 允许访问uploads目录及其子目录下的所有文件 allow all; }修改后需要重启Nginx服务。
第三步:程序与数据库层面检查
如果以上所有方法都无效,问题可能出在程序本身。
检查是否开启了“图片本地化”功能 这个功能有时会干扰正常的图片显示逻辑。
- 方法:进入 “系统” -> “系统基本参数” -> “核心设置”,找到 “是否采集远程图片本地化”,尝试将其从“是”改为“否”,保存后测试。
检查DedeCMS版本和补丁 您使用的DedeCMS版本可能存在已知的Bug。
- 方法:
- 访问DedeCMS官方网站,查看您当前版本是否有可用的补丁或升级包。
- 如果有,请备份好您的网站数据和数据库,然后按照官方说明进行升级或打补丁,升级通常是解决顽固Bug的最佳方式。
检查数据库
- 方法:通过phpMyAdmin登录您的数据库。
- 检查数据表:找到存放图集数据的表(通常是
dede_addonimages,如果您的图集是独立模型)。 - 检查字段:打开该表,查看您上传的图集文章对应的记录,检查
imgurls这个字段,里面的内容是否正常,正常格式应该是一个JSON字符串,包含了图片的描述和路径,如果内容为空或格式错乱,说明数据在写入时就出错了。
总结与建议
遇到“织梦图集上传图片不显示”的问题,请按以下优先级顺序处理:
- 首要检查:图片路径,这是80%以上问题的根源,通过后台编辑文章,复制图片链接到浏览器中访问,判断路径是否正确,然后使用后台“数据修复”功能进行修正。
- 其次检查:服务器权限,确保
/uploads目录权限为755,文件权限为644。 - 再次检查:PHP配置,确认
php.ini中的上传相关参数设置无误。 - 最后检查:程序本身,检查“图片本地化”开关,并考虑升级到最新版本的DedeCMS。
希望这套详细的排查流程能帮助您成功解决问题!如果在某个步骤卡住了,可以提供更具体的现象(图片文件在不在?浏览器访问图片链接是什么结果?),我可以给您更具针对性的建议。
