Products
96SEO 2025-09-04 11:09 3
DedeCMS作为国内广泛使用的内容管理系统, 其会员发布功能非常灵活,但默认情况下对于附件上传类型的限制较为宽松,无法直接通过后台轻松设置只允许会员上传特定类型的附件文件。本文将深入讲解如何通过调整配置和代码, 实现在会员前台发布文章时只允许上传指定的附件类型,保证网站内容平安与规范。
在实际项目中,很多行业站点需要会员上传技术文档、产品资料等附件,但往往只希望限制为特定格式,比如 .doc
.xls
.ppt
.pdf
等办公文档格式,以避免出现不合适甚至凶险的文件类型上传。而DedeCMS默认前台会员发布页面对附件类型并没有严格控制,导致:
目标: 实现只允许会员在前台发布文章时上传指定附件类型并且保持良好的用户体验和系统稳定性。
DedeCMS的前台发布功能主要依赖于FCKeditor编辑器和相关表单提交机制。附件上传涉及以下几个关键环节:
只有前后端双重控制才能确保上传平安且符合预期。
DedeCMS使用FCKeditor作为默认编辑器,其插件配置决定了可插入的文件类型。修改路径通常为:
/member/include/fckeditor/fckeditorconfig.js
步骤如下:
case 'AddonUser':
B = new FCKDialogCommand;
break;
/member/include/fckeditor/dialog/dede_addon.htm
打开该HTML文件, 这是弹出窗口,用于选择或上传附件。
var allowExts = "jpg|gif|png|jpeg|bmp";
将其替换成你希望允许的
名,比方说:
var allowExts = "doc|docx|xls|xlsx|ppt|pptx|pdf";
DedeCMS对于文件上传会有多处检查代码, 需要重点关注member模块相关处理,如:
路径通常是:
/member/upload.php 或 /member/plus/ajax_upload.php
操作流程示例:
// 原始示例
$allowTypes = array;
$fileExt = strtolower);
if ) {
die;
}
$allowTypes = array;
$fileExt = strtolower);
if ) {
die;
}
DedeCMS自带管理员后台表单一般名称为“addcontent”, 但在会员模块中经常需要将form名改成“form1”来配合JS函数调用,否则会导致弹窗选择附件失败或无法正确回传路径。此问题经常导致用户反馈“点击刚刚上传附件无反应”。解决办法如下:
/member/templets/archives_add.htm
'addcontent'
改为
'form1'
保存。
- 此举能解决很多因表单命名导致无法正确回传值的问题,是一条实用技巧!
---
---
---
---
---
---
---
---
---
---
---
---
---
----
----
----
----
----
----
----
----
---
---
---
---
---
---
---
Demand feedback