我不知道大家有没有遇到过这种现象
反正我的站就遇到了
服务器里的附件 原本正常,电脑、MT 管理器能打开
但通过上传附件到论坛后下载到手机,或者上传到宝塔!
手机系统解压提示:解析出错或损坏
宝塔在线解压 提示:not a valid zip file
经过研究!
真实的原因
不是压缩包问题,不是上传问题,是下载输出污染。
PHP 在下载文件时,输出缓冲区里有多余内容(空格、换行、钩子输出、HTML)
这些内容被偷偷写进 ZIP,导致文件结构破坏。
我是这样搞的
在原版 route/attach.php 只需要在 readfile 之前加上下面的这三行核心代码
就能修复这个问题。
作用
1. 清空缓冲区,杜绝多余内容污染文件
2. 强制指定真实文件大小,保证下载完整
3. 让下载变成纯净二进制流。
修复后的结果,压缩全部正常了