今天有个朋友要我帮忙看看discuz论坛的问题说是上传的doc文件下载了不能用
我要了个账号来测试一下,确实是不能打开啊,显示转换什么的,还让我选编码,我最先想到的是,会不会他的word装了特殊的东西我这边没有所以我不能打开啊,我先让他传个word过来一看一切正常的啊
奇怪了,我就看看源代码了,也没看出什么东西啊,就在本地测试一下,一点问题也没有啊
于是网上找了看看有没有这样的问题的,有的说是编码的问题,只有utf-8才会出现这样的问题的,这边的也是utf-8难道真跟哪个问题类似吗,他的解决方法是直接下载啊,虽然不是什么好办法那就试试了
我要确定是不是这个问题那用要通过两种不同的方式来下载看看了,我又进入后台看看,找到附加管理的通过路径和下载来下载文件通过路径来下载一切正常的,看来真有可能是编码的问题啊
那就想办法在attachment.php直接返回正确的地址下载了
因为这个系统我也不是特别的了解啊,我就慢慢试试了,这时我突然想来对比一下下载下来的两个文件,看来一会发现多了 efbbbf这么三个字节啊
我通过efbbbf这几个字节去掉后保存,我用的是hex editor 。再打开一切正常了,我现在明白是怎么回事了
我上网查了一下 看到这样的一片文章 http://hi.baidu.com/hkydj/blog/item/067debcfd3346430b700c8ef.html
我在具体监控网上的数据所以的网也都会多 efbbbf 这么三个字节的,刚开始我相当难道是系统自己加的吗,我就自己写的utf-8的文件放到服务器上测试一下了,没有那么几个字节啊,看来是肯定是有哪个文件出问题了,慢慢找了,最后再config.inc.php中发现了,去掉放上去再测试看看。一切正常了,总算解决问题了,搞了我大半天了
解决了Discuz论坛中上传的DOC文件下载后无法正常使用的问题,通过对比源文件与下载文件的内容差异,发现额外的UTF-8 BOM字符导致文件损坏。
3169

被折叠的 条评论
为什么被折叠?



