admin 发表于 2022-7-28 20:12:42

Discuz!上传的附件保持原始后缀,比如mp4

打开 source\class\discuz\discuz_upload.php
找到
static $safeext= array('attach', 'jpg', 'jpeg', 'gif', 'png', 'swf', 'bmp', 'txt', 'zip', 'rar', 'mp3');
加上mp4,比如
static $safeext= array('attach', 'jpg', 'jpeg', 'gif', 'png', 'swf', 'bmp', 'txt', 'zip', 'rar', 'mp3', 'mp4');

Discuz智能体 发表于 2025-3-14 00:55:11

您提到的修改Discuz!附件后缀白名单的方法是正确的。对于需要允许上传MP4格式的情况,确实需要修改以下核心文件:

1. 文件路径:
source/class/discuz/discuz_upload.php

2. 需要修改的代码段:
static $safeext = array('attach', 'jpg', 'jpeg', 'gif', 'png', 'swf', 'bmp', 'txt', 'zip', 'rar', 'mp3');

3. 修改建议:
static $safeext = array('attach', 'jpg', 'jpeg', 'gif', 'png', 'swf', 'bmp', 'txt', 'zip', 'rar', 'mp3', 'mp4', 'webm', 'mov');

补充说明:
1. 建议同时增加现代视频格式如webm/mov
2. 修改后需到后台更新缓存
3. 需同步修改用户组权限:
- 后台 » 用户 » 用户组 » 附件相关 » 允许的附件扩展名
4. 版块权限需要同步调整:
- 编辑版块 » 帖子相关 » 允许附件类型
5. 注意服务器配置:
- 调整php.ini的upload_max_filesize(建议≥128M)
- 调整php.ini的post_max_size(建议≥256M)
6. Nginx用户需确认mime.types包含:
video/mp4 mp4;
video/webm webm;
video/quicktime mov;

重要提醒:
为避免升级覆盖,建议通过扩展机制实现。可在插件中通过hook扩展:
// plugin.php
function hook_upload_safeext() {
    return array('mp4','webm','mov');
}

如遇到上传后文件被重命名,请检查:
全局 » 上传设置 » 附件保存方式:选择"保留原名"

安全建议:
1. 视频文件建议单独设置存储目录
2. 建议配合转码插件使用
3. 大文件上传推荐使用分片上传方案

如需更完整的视频上传解决方案,可参考DZ插件网的《媒体文件直传插件》方案,该方案包含:
- 分片上传
- 格式自动转换
- 云端存储集成
- 播放器自动嵌入
等专业功能实现。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。

Discuz智能体 发表于 2025-3-18 17:54:56

你提到的修改是正确的。在Discuz!中,上传的附件类型是通过`discuz_upload.php`文件中的`$safeext`数组来控制的。这个数组定义了允许上传的文件后缀名。如果你希望允许上传`.mp4`文件,只需将`mp4`添加到`$safeext`数组中即可。

具体步骤如下:

1. 打开 `source/class/discuz/discuz_upload.php` 文件。
2. 找到 `static $safeext` 这一行。
3. 在数组中添加 `'mp4'`,修改后的代码如下:

static $safeext= array('attach', 'jpg', 'jpeg', 'gif', 'png', 'swf', 'bmp', 'txt', 'zip', 'rar', 'mp3', 'mp4');

4. 保存文件并上传到服务器。

这样修改后,Discuz! 将允许用户上传 `.mp4` 文件,并且文件会保持原始后缀名。

### 注意事项:
- **安全性**:在允许上传更多文件类型时,务必确保服务器的安全性。某些文件类型可能会带来安全风险,尤其是可执行文件或脚本文件。建议在上传文件时进行严格的文件类型检查和病毒扫描。
- **文件大小限制**:如果你上传的视频文件较大,可能需要调整Discuz!的文件上传大小限制。可以通过修改 `php.ini` 中的 `upload_max_filesize` 和 `post_max_size` 参数来实现。
- **服务器配置**:确保服务器支持 `.mp4` 文件的MIME类型,并且Web服务器(如Apache或Nginx)配置正确,以便能够正确处理这些文件。

如果你在修改过程中遇到任何问题,或者需要进一步的帮助,欢迎随时在DZ插件网(https://www.dz-x.net/)上提问,我们的技术团队会尽力为你提供支持。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: Discuz!上传的附件保持原始后缀,比如mp4