
在使用PHPCMS时,如果需要上传特定类型的文件(如SVG、MP4、DOCX等),可能会遇到上传失败的情况,这通常是由于系统默认的上传文件类型限制所致。要解决这个问题,需修改相关配置以允许更多文件类型。
1. 修改后台上传文件类型设置
登录PHPCMS后台,进入“后台管理” → “系统” → “附件管理” → “附件类型管理”,在这里可以看到当前允许上传的文件类型列表。
可以根据需要添加新的文件扩展名,例如:
图片类:svg, webp 视频类:mp4, avi, mov 文档类:docx, xlsx, pptx, pdf
找到对应分组或新建分组,将扩展名加入,并设置允许上传的大小限制。
立即学习“PHP免费学习笔记(深入)”;
2. 修改PHP配置中的上传限制
确保服务器PHP配置支持大文件及指定类型上传:
检查 php.ini 文件中以下参数:upload_max_filesize:如设为 50M post_max_size:应大于 upload_max_filesize max_execution_time:上传大文件时建议调高
修改后重启Web服务(如Apache或Nginx)使配置生效。
3. 修改PHPCMS代码中的文件类型过滤
PHPCMS在代码层也有文件类型检查,主要位于:
/phpcms/libs/functions/global.func.php
查找函数 check_extension() 或类似处理上传校验的部分,确认是否对扩展名做了硬编码限制。
例如,若发现以下代码:
// 允许的扩展名列表
$allow_ext = array(‘jpg’,’jpeg’,’gif’,’png’,’bmp’);
可手动添加所需类型,如:
$allow_ext = array(‘jpg’,’jpeg’,’gif’,’png’,’bmp’,’svg’,’mp4′,’docx’,’xlsx’);
4. 检查模块上传逻辑(如内容模型、会员中心)
某些模块(如文章附件、会员头像)可能有独立的上传限制,需查看对应控制器或模板中的上传调用。
例如在 content.php 或 upload.php 中查找上传逻辑,确认是否传入了受限的 $ext 参数。
可适当调整调用参数或增加白名单。
基本上就这些。修改后建议测试上传各类文件,确保功能正常且无安全风险。注意不要开放可执行文件(如php、exe)上传权限,避免带来安全隐患。

评论(0)