网站首页php
PHP下载文件,打开乱码问题处理
发布时间:2017-03-28 18:50:25编辑:slayer.hover阅读(3004)
在系统测试时出现,导出的Excel文件打开后都报异常。开始以为是下载代码出的问题,换了N种下载方式均无效。
在网上搜索答案后,发现需要加下面两行:
ob_clean(); flush();
恢复正常后的下载代码如下所示:
private function downfile($filename) { $fileinfo = pathinfo($filename); header('Content-type: application/x-'.$fileinfo['extension']); header('Content-Disposition: attachment; filename='.$fileinfo['basename']); header('Content-Length: '.filesize($filename)); ob_clean(); flush(); readfile($filename); }
这两行代码的意义:ob_clean()后,缓冲区中的内容被清除了。
用PHP下载二进制的文件,如果前面有输出的话,相当于正常文件前面会多出一些内容,所以会出错,
清除前置输出内容后,就是要下载的纯净的二进制文件了。
评论