热搜词
发表于 2012-12-16 14:08:45 | 显示全部楼层 |阅读模式
Discuz! X2.5 UTF8版本上传的附件,在IE下所有附件下载出现“文件被破坏,和不可预料的压缩文件末端”,但是迅雷、快车之类的下载工具能正常下载。在官方发贴求助很长时间了,也没有解决的办法。

相关贴子:http://www.discuz.net/thread-3165383-1-1.html

这个问题困扰我很长时间,究竟是什么原因造成浏览器与下载工具之间下载论坛附件出现不同结果呢。经过不断比较与测试,造成这个错误原因有两种可能,分别为:

原因一:配置文件config.inc.php编码不是utf-8,把它改为utf-8编码即可。

原因二:原来是因为php.ini里面设置了zlib.output_compression,去掉压缩功能即可。
      经过Head详细比较,二者的区别仅仅在于浏览器要与服务器协商gzip压缩,而我的Apache PHP中又设定了zlib.output_compression = On,原来是经过zlib的处理后的UTF-8 Head后数据段为空时它大概会自动添加一个UTF-8的空字符串,当真正的数据到达时,浏览器误将多出来到的字符写入了文件。关闭了zlib压缩之后,下载正常了,当时,服务器也损失了性能。测试了一下使用ob_gziphand也是不行的。看来,要是能够指定某些文件类型不使用zlib就好了。

使用Apache自带的mod_deflate.so进行gzip压缩没有问题,而且可以根据文件扩展名或类型指定是否压缩。

Discuz! X2.5 UTF8版本正确启用gzip的方法,在php.ini里面关闭zlib.output_compression压缩功能,再打开配置文件config_global.php。

在config_global.php里按如下修改:
将$_config['output']['gzip']                         = 1;                // 是否采用 Gzip 压缩输出


全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-23 09:32 , Processed in 0.172238 second(s), 26 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team