我不知道大家有没有遇到过这种现象
反正我的站就遇到了!
服务器里的附件 原本正常,电脑、MT 管理器能打开
但通过上传附件到论坛后下载到手机,或者上传到宝塔!
手机系统解压提示:解析出错或损坏
宝塔在线解压 提示:not a valid zip file
经过研究
真实的原因
不是压缩包问题,不是上传问题,是下载输出污染。
PHP 在下载文件时,输出缓冲区里有多余内容(空格、换行、钩子输出、HTML)
这些内容被偷偷写进 ZIP,导致文件结构破坏。
没有 Content-Length ,浏览器不知道文件真实大小,下载不完整。
我是这样修复的
在你原版 route/attach.php 只需要在 readfile 之前加上下面的这三行核心代码
您好,本帖含有特定内容,请回复后再查看
VIP 1级及以上用户可免回复查看
开通会员
不用改动任何业务逻辑,立即修复。
作用:
1. 清空缓冲区,杜绝多余内容污染文件
2. 强制指定真实文件大小,保证下载完整
3. 让下载变成纯净二进制流。
修复后的结果(压缩全部正常)
论坛下载附件 100% 完整
附件详情
-
说明:
普通用户每次点击下载扣除1金币
-
附件名:
-
附件分类:
-
账户经验:
-
账户金币:
-
账户灵石:
-
上传信息:
Mr.Chen|2026-04-09
-
下载地址: