码迷,mamicode.com
首页 > Web开发 > 详细

PHP header() 下載服務器文件亂碼,損壞解決辦法

时间:2015-08-27 12:49:44      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

header("Content-Type: application/octet-stream");
header(‘Content-Transfer-Encoding: binary‘);
header("Content-Disposition: attachment; filename=\"".$file_name."\"");
readfile("lib/uploads/doc/".$file_name);

  以上是問題代碼.

    這段代碼在windows  server 下載文件後能正常打開無異常.

    但是, 在linux server 下載文件後出現諸如ppt, jpg損壞,word, excel 文檔亂碼等情況.

    排查之後發現應該是bom 頭出現問題.

    但保存文件的格式已經是 utf-8 without Bom , header()之前也沒有任何輸出.檢查過配置文件也正常.

    不過為了保險,還是手動清除了緩存.

 

header("Content-Type: application/octet-stream");
header(‘Content-Transfer-Encoding: binary‘);
header("Content-Disposition: attachment; filename=\"".$file_name."\"");
ob_clean();
flush();
readfile("lib/uploads/doc/".$file_name);

  以上是修改後的代碼.

  ob_clean — 清空(擦掉)输出缓冲区

  flush — 刷新输出缓冲

  清除緩存之後,在linux環境下在的文件也正常了.

 

PHP header() 下載服務器文件亂碼,損壞解決辦法

标签:

原文地址:http://www.cnblogs.com/s20150819/p/4762635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!