xiuno论坛遇到的问题
笑笑 3小时前

我不知道大家有没有遇到过这种现象

反正我的站就遇到了

服务器里的附件 原本正常,电脑、MT 管理器能打开

但通过上传附件到论坛后下载到手机,或者上传到宝塔!

​手机系统解压提示:解析出错或损坏

​宝塔在线解压 提示:not a valid zip file

经过研究!

真实的原因

不是压缩包问题,不是上传问题,是下载输出污染。

PHP 在下载文件时,输出缓冲区里有多余内容(空格、换行、钩子输出、HTML)

​这些内容被偷偷写进 ZIP,导致文件结构破坏。

我是这样搞的

在原版  route/attach.php  只需要在  readfile  之前加上下面的这三行核心代码

ob_clean();
ob_end_clean();
header('Content-Length: '.$filesize);
 
php

 

就能修复这个问题。

作用

1. 清空缓冲区,杜绝多余内容污染文件

2. 强制指定真实文件大小,保证下载完整

3. 让下载变成纯净二进制流。

修复后的结果,压缩全部正常了

最新回复 (1)
全部楼主
  • outsider
    1小时前 2
    0
    楼主,我只是来混个熟的!老板,侬亿雷凑闹嫩了!
返回
笑笑
二级用户组
9
主题数
85
帖子数
扫码访问