- 核心数据表:存储下载资源信息。
- 后台管理功能:用于添加、编辑、删除下载资源。
- 前台展示功能:用于向访客展示下载列表和提供下载链接。
- 下载统计与防盗链:记录下载次数,并防止资源被直接盗用。
核心数据表
DedeCMS 的下载功能主要依赖两个数据表:
-
#@__downloads(或dede_downloads):这是下载资源的主表,存储了每个下载项的基本信息。id: 资源的唯一ID,主键。typeid: 所属的栏目ID,用于分类管理。title: 资源的标题。titleurl: 资源的页面链接(通常为空,因为下载资源没有独立页面)。writer: 上传者/作者。litpic: 缩略图,用于列表页展示。dtime: 发布时间。filesize: 文件大小(单位:KB)。downloadurl: 核心字段,指向实际下载文件的地址,可以是站内绝对路径,也可以是站外URL。click: 核心字段,记录该资源的下载次数。ischeck: 是否通过审核(0=未审核,1=已审核)。
-
#@__arctiny(或dede_arctiny):这是文档摘要表,DedeCMS 将所有内容(包括文章、软件、图集等)都视为“文章”来管理,所以下载资源也在这里有一条记录。typeid: 栏目ID。arcrank: 文章状态(-1为待审核,0为正常)。click: 点击次数(与#@__downloads表中的click是同步的)。
#@__downloads 存储下载特有的信息(如文件大小、下载链接),而 #@__arctiny 存储通用的内容信息,两者通过 id 关联。
后台管理功能
在 DedeCMS 后台,你通过 “软件频道” 来管理下载功能。
-
创建下载栏目:
- 进入
[核心]->[频道管理]->[软件频道管理]。 - 点击
增加顶级栏目,填写栏目信息:- 栏目名称:软件下载”、“资源分享”。
- 栏目类型:选择“软件频道”。
- 栏目目录:生成在网站的目录名,如
soft。 - 列表模板:选择或自定义下载列表的样式模板。
- 下载模板:选择或自定义下载详情页的样式模板(虽然下载资源通常没有独立详情页,但这个模板用于生成下载链接页面)。
- 其它选项:根据需要设置,如是否启用评论、是否需要审核等。
- 进入
-
添加下载资源:
- 进入
[软件频道]->[软件管理]->[增加软件]。 - 基本信息:
- 所属栏目:选择你刚才创建的下载栏目。
- 软件名称:填写资源的标题。
- 软件类型:可以再次细分,如“办公软件”、“设计软件”等(需要在后台提前设置好软件类型)。
- Tag标签:用于优化和分类。
- 软件信息:
- 软件大小:填写文件大小,如
1024。 - 软件等级:星级评价。
- 界面语言:如“简体中文”。
- 授权方式:如“免费软件”、“商业软件”。
- 相关地址:可以填写软件的官方网站、演示地址等。
- 软件大小:填写文件大小,如
- 软件简介:填写对软件的介绍,这部分内容会显示在下载列表页。
- 软件下载地址:这是最关键的一步。
- 点击
[增加下载地址]。 - 下载地址名称:如“官方原版下载”、“本地高速下载”。
- 下载地址:输入文件的完整URL。强烈建议使用站内绝对路径,
/uploads/soft/2025/program.zip,这样可以更好地进行防盗链处理。 - 点击次数:可以留空,系统会自动统计。
- 点击
- 缩略图:上传一张代表该软件的图片,用于在列表页展示。
- 发布选项:设置是否推荐、是否生成HTML、是否需要审核等。
- 点击
确定保存。
- 进入
前台展示功能
前台展示主要通过调用标签({dede:})来实现。
-
下载列表页: 这通常是一个栏目页,
yourdomain.com/soft/,你需要为这个栏目设置一个列表模板(如list_soft.htm)。 在模板文件中,使用dede:arclist标签来循环调用下载资源。示例代码 (
list_soft.htm):<h2>软件下载列表</h2> <ul> {dede:arclist typeid='栏目ID' row='10' titlelen='50' orderby='click'} <li> <a href="[field:arcurl/]"> <img src="[field:litpic/]" alt="[field:title/]" /> <h3>[field:title/]</h3> <p>大小:[field:filesize/] KB | 下载:[field:click/] 次</p> </a> </li> {/dede:arclist} </ul>typeid='栏目ID':指定要调用的下载栏目。row='10':显示10条记录。arcurl:会自动跳转到该资源的下载页面(由软件下载地址页面模板生成)。litpic:缩略图。filesize:文件大小。click:下载次数。
-
下载页面: 当用户点击列表中的链接后,会进入一个由
下载模板(如soft_downloads.htm)生成的页面,这个页面不显示太多内容,核心是提供下载按钮。示例代码 (
soft_downloads.htm):<h1>[field:title/]</h1> <div class="info"> <p>软件大小:[field:filesize/] KB</p> <p>下载次数:[field:click/]</p> <p>软件简介:[field:description function='htmlspecialchars(@me)'/]</p> </div> <div class="download-links"> <h3>下载地址</h3> {dede:sonlist} <div class="link-item"> <a href="[field:link/]" target="_blank">[field:fullname/]</a> </div> {/dede:sonlist} </div>- 这个模板主要使用了
sonlist标签来循环显示你在后台添加的多个下载地址。 [field:link/]就是你在后台填写的实际下载URL。- 当用户点击这里的链接时,会触发下载,并且后台的
click计数器会自动加1。
- 这个模板主要使用了
下载统计与防盗链
-
下载统计:
- 原理:当用户通过 DedeCMS 生成的下载链接(即
soft_downloads.htm页面里的链接)进行下载时,PHP 脚本会先记录一次点击,然后再将请求重定向到真实的文件。 - 实现:这个过程在 DedeCMS 的底层代码中自动完成,你只需要确保在后台添加下载地址时使用的是站内路径,系统才能正确地拦截请求并进行计数,如果使用的是外部URL,则无法统计。
- 原理:当用户通过 DedeCMS 生成的下载链接(即
-
防盗链:
- 问题:如果不做处理,其他网站可以直接引用你的下载文件地址,导致你的服务器流量被白白消耗,而下载次数却无法统计。
- 解决方案:
- 服务器配置(推荐):在服务器(如 Apache 或 Nginx)中配置
.htaccess或nginx.conf文件,检查请求的Referer(来源)头信息,如果来源不是你的网站,则拒绝访问。- Apache
.htaccess示例:RewriteEngine On # 防盗链设置,允许本站和空Referer RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule \.(zip|rar|exe|pdf|doc|docx)$ - [F,NC] - Nginx 配置示例:
location ~ \.(zip|rar|exe|pdf|doc|docx)$ { valid_referers none blocked server_names yourdomain.com *.yourdomain.com; if ($invalid_referer) { return 403; } }
- Apache
- DedeCMS 自带防护:DedeCMS 的下载机制本身就带有一定的防盗链效果,因为它会先通过 PHP 脚本进行中转,但服务器级的防盗链更彻底、效率更高。
- 服务器配置(推荐):在服务器(如 Apache 或 Nginx)中配置
DedeCMS 的下载功能模块是一个成熟且完整的系统,要使用好它,关键在于:
- 后台正确配置:创建好“软件频道”栏目,并以正确的方式添加下载资源,特别是使用站内绝对路径作为下载地址。
- 前台模板灵活调用:熟练使用
arclist和sonlist等标签来构建下载列表和下载页面。 - 安全防护:强烈建议配合服务器的防盗链配置,以保护你的服务器资源和流量。
通过以上步骤,你就可以轻松地在 DedeCMS 网站上搭建一个功能完善、安全可靠的下载中心。
