在后台管理系统中获取上传文件的地址
当你通过后台的“添加内容”或“自定义表单”等功能上传了文件后,系统会把这个文件的路径保存在数据库的某个字段里,你可以在后台直接查看这个路径。

方法1:直接在内容编辑器中查看
这是最直接的方法,适用于文章、图集等常规内容。
- 进入文章编辑页面:登录后台,找到“核心” -> “内容发布” -> “普通文章”或其他内容类型,点击编辑一篇你已上传了文件的文章。
- 查找文件路径:
- 如果是图片:切换到“内容图片”选项卡,你会看到上传的图片列表,鼠标悬停在图片上,通常会显示图片的地址,或者点击图片进入编辑,在“图片地址”一栏就能看到完整的相对路径。
- 如果是附件/其他文件:切换到“附件”选项卡,你会看到上传的文件列表,同样,点击文件可以查看其“地址”。
- 如果是图集:在“图集”选项卡中,上传的每张图片都有一个“图片地址”字段,这里保存的就是路径。
示例路径格式:
/uploads/allimg/230515/1-2305151H5062-50.jpg
这个路径是相对于你网站根目录的。
方法2:通过数据表直接查看
如果你想知道某个特定字段存储的路径是什么,可以直接查询数据库。

-
找到数据表:
- 对于文章,数据表通常是
dede_archives和dede_addonarticle(附加表),文件路径通常存储在附加表的body字段(HTML内容中)或者专门的字段里。 - 对于图集,数据表是
dede_addonimages,路径通常存储在imgurls字段(这是一个文本字段,包含多张图片的信息)。 - 对于自定义表单,数据表是你创建表单时生成的,
dede_diyform1,文件路径就存储在你设定的“文件上传”类型的字段里。
- 对于文章,数据表通常是
-
使用数据库管理工具(如phpMyAdmin)查询:
- 登录你的数据库管理工具。
- 找到对应的数据表。
- 执行
SELECT语句来查询你需要的记录。
示例查询图集路径:
SELECT id, title, imgurls FROM dede_addonimages WHERE id = '123';
查询结果中的
imgurls字段会包含类似这样的内容:
(图片来源网络,侵删)<fieldset id="imgFieldset1"> <img src='/uploads/allimg/230515/2-2305151H5062-51.jpg' alt='图片描述1'> </fieldset> <fieldset id="imgFieldset2"> <img src='/uploads/allimg/230515/2-2305151H5062-52.jpg' alt='图片描述2'> </fieldset>
你可以看到,路径被包含在
<img src='...'>标签中。
在模板文件(*.htm)中获取并使用上传文件的地址
这才是前端开发中最常用的情况,你需要在模板中调用数据库里存储的路径,并生成完整的、可访问的URL。
基础:获取单个文件路径
假设你有一个自定义模型,上传的文件路径存储在附加表的 myfile 字段里。
模板代码示例:
{dede:field name='myfile'/}
这会直接输出数据库中存储的相对路径,/uploads/soft/2025/0515/123.zip。
重要:生成完整URL
上面的路径是相对路径,在某些情况下(如静态化、CDN)可能无法直接访问,DedeCMS 提供了全局变量 {dede:global.cfg_basehost/} 来获取你的网站域名。
推荐做法:拼接完整URL
<a href="{dede:global.cfg_basehost/}{dede:field name='myfile'/}" target="_blank">
点击下载文件
</a>
这样生成的HTML就是:
<a href="https://www.yourdomain.com/uploads/soft/2025/0515/123.zip" target="_blank">
点击下载文件
</a>
{dede:global.cfg_basehost/} 会自动包含 http:// 或 https://。
进阶:处理图集(多张图片)
图集的数据结构比较特殊,它不是简单的路径列表,而是包含在 imgurls 字段中的一段HTML代码,你需要使用DedeCMS的专用标签来解析它。
方法1:使用 {dede:field.imglist/} 标签(推荐)
这个标签专门用于解析图集字段,并以列表形式输出每张图片的信息。
模板代码示例:
{dede:field.imglist}
<li>
<!-- 获取图片的缩略图地址 -->
<a href="[field:imgsrc function='str_replace("small", "big", "@me")'/]" title="[field:text/]">
<img src="[field:imgsrc/]" alt="[field:text/]"/>
</a>
</li>
{/dede:field.imglist}
代码解析:
{dede:field.imglist}...{/dede:field.imglist}:循环遍历图集中的所有图片。[field:imgsrc/]:获取当前图片的缩略图地址(通常在uploads/allimg/.../small/目录下)。[field:text/]:获取当前图片的描述文字。function='str_replace("small", "big", "@me")':这是一个非常有用的功能,它将imgsrc路径中的small替换为big,从而获取到大图的地址,这是制作图集灯箱效果的常用技巧。
方法2:使用 {dede:field name='imgurls' function='GetImgUrls(@me)'/}
这个函数会 imgurls 字段解析成一个PHP数组,然后你可以通过 {dede:loop} 来遍历它。
模板代码示例:
{dede:loop name='GetImgUrls(@me)' id='img'}
<img src="[field:imgurl/]" alt="[field:imgtext/]"/>
{/dede:loop}
name='GetImgUrls(@me)':调用GetImgUrls函数处理imgurls字段,并将结果传递给loopid='img':定义循环中每一项的别名。[field:imgurl/]:获取图片地址。[field:imgtext/]:获取图片描述。
| 需求场景 | 推荐方法 | 关键代码/标签 |
|---|---|---|
| 后台查看单个文件路径 | 编辑器的“内容图片”或“附件”选项卡中查看。 | 无 |
| 后台查看图集路径 | 查询 dede_addonimages 表的 imgurls 字段。 |
SELECT imgurls FROM dede_addonimages... |
| 模板中获取单个文件完整URL | 拼接域名和相对路径。 | <a href="{dede:global.cfg_basehost/}{dede:field name='myfile'/}">...</a> |
| 模板中循环输出图集(推荐) | 使用 {dede:field.imglist/}
| |
| 模板中循环输出图集(备选) | 使用 GetImgUrls 函数和 {dede:loop}。 |
{dede:loop name='GetImgUrls(@me)' id='img'}...{/dede:loop} |
希望这份详细的指南能帮助你解决在 DedeCMS 中获取上传文件地址的问题!
