首页 > Web开发 > 详细

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

时间:2015-08-27 12:48:43      阅读:478      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!