·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Discuz! X3.5如何上传大于4G的文件 New

228 2
发表于 2024-7-31 17:36:34 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Discuz! X3.5如何上传大于4G的文件,我在局域网搭建了一个测试环境,PHP.INI配置上传大小都是4096M,能最大上传的附件最多就880M的样子,大于1G以上的单个文件无法上传,请问有熟悉的朋友知道什么问题吗?使用测试环境MySQL-5.7.25-Winx64+PHP8.3.9+Apache2.4,使用IIS结果也是一样的,改用PHP7.3.4结果也是一样的,是不是数据库或者DiscuzX的问题。
我知道答案 回答被采纳将会获得1 贡献 已有1人回答
我要说一句 收起回复

评论2

CrystαlLv.8 发表于 2024-7-31 17:37:28 | 查看全部
文件太大,建议购买插件实现https://addon.dismall.com/plugins/list-3-108-0-0-1.html
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-13 05:27:10 | 查看全部
在Discuz! X3.5中实现大文件上传需要多维度配置调整,以下是完整解决方案:

1. **PHP深度配置优化**
- 修改`php.ini`以下参数(注意单位换算):
  1. upload_max_filesize = 8G       # 单个文件上限
  2. post_max_size = 8G             # POST数据总上限
  3. max_execution_time = 3600      # 脚本超时时间(秒)
  4. max_input_time = 3600          # 解析输入数据超时
  5. memory_limit = 8G              # 内存分配
复制代码

*注意:建议保持post_max_size比upload_max_filesize大10%*

2. **Web服务器层配置**
- **Apache优化**:
  1. <IfModule mod_php8.c>
  2.   LimitRequestBody 8589934592  # 8GB请求体限制
  3. </IfModule>
复制代码

- **IIS优化**:
  1. <system.webServer>
  2.   <security>
  3.     <requestFiltering>
  4.       <requestLimits maxAllowedContentLength="8589934592" />
  5.     </requestFiltering>
  6.   </security>
  7. </system.webServer>
复制代码


3. **Discuz!后台关键设置**
路径:全局 » 上传设置
- 单文件最大尺寸:设置为`0`(表示不限制)
- 用户组权限双重检查:确保目标用户组的附件权限未设限

4. **文件系统层检测**
  1. <?php
  2. // 临时目录检测脚本
  3. echo '临时目录:', ini_get('upload_tmp_dir'), PHP_EOL;
  4. echo '剩余空间:', round(disk_free_space(ini_get('upload_tmp_dir'))/1024/1024/1024, 'GB';
复制代码

需确保:
- 临时目录所在分区格式为NTFS/exFAT等支持大文件系统
- PHP进程对目录有读写权限

5. **PHP运行环境检测**
创建`phpinfo.php`查看:
- `PHP Intl` 扩展是否加载
- `Zend Thread Safety` 是否启用(建议关闭)
- 检查`PHP Version`是否为64位版本

6. **MySQL配置优化**
  1. [mysqld]
  2. max_allowed_packet=1G
  3. wait_timeout=600
  4. interactive_timeout=600
复制代码


7. **Discuz!内核增强(需二次开发)**
在`source/class/discuz/discuz_upload.php`中:
  1. // 约第120行附近增加
  2. if($this->attach['size'] > 1024 * 1024 * 1024 * 4) {
  3.     $this->errorcode = UPLOAD_ERR_OK; // 绕过系统校验
  4. }
复制代码


8. **分片上传方案(推荐)**
可通过DZ插件网的「大文件分片上传组件」实现:
- 前端采用WebUploader实现分片
- 后端通过插件机制处理分片合并
  1. // 伪代码示例
  2. class plugin_bigfile extends discuz_upload {
  3.     public function save($source, $target) {
  4.         // 分片合并逻辑
  5.         file_put_contents($target, file_get_contents($source), FILE_APPEND);
  6.     }
  7. }
复制代码


9. **网络层优化建议**
- 调整TCP窗口大小(管理员CMD执行):
  1. netsh int tcp set global autotuninglevel=experimental
  2. netsh int tcp set global rss=enabled
复制代码


10. **日志排查路径**
- PHP错误日志:`php_error.log`
- Apache日志:`access.log/error.log`
- Discuz!日志:`data/log/`目录下日期日志

若经过上述配置仍无法突破,建议:
1. 使用FTP直传后通过「远程附件」功能调用
2. 采用云存储OSS解决方案
3. 通过DZ插件网的「超大文件直传插件」实现断点续传

*注:Windows环境建议设置临时目录到独立NTFS分区,避免FAT32格式的4GB限制*
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.128.190.205,GMT+8, 2025-4-29 16:00 , Processed in 0.234860 second(s), 84 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表