易怀源

导航

PHP文件下载出现乱码

问题:

一个用了很久的文件下载函数;

<?php

/**
 * 强制下载文件
 * @param string $filename 变量
 * @param string $name 变量
 * @return mixed
 */
function download($filename,$name){
  if ((isset($filename))&&(file_exists($filename))){
     header("Content-length: ".filesize($filename));
     header('Content-Type: application/octet-stream');
     header('Content-Disposition: attachment; filename="' . $name . '"');
     readfile("$filename");
  } else {
     $info="Looks like file does not exist!";
     return $info;
  }
}

?>

再次使用功能可以实现;

但是下载下来的文件内容出现了乱码;

--------------------------------------------------------------------------------

解决办法:

在下载之前使用两个函数处理一下:

<?php

/**
 * 强制下载文件
 * @param string $filename 变量
 * @param string $name 变量
 * @return mixed
 */
function download($filename,$name){
  if ((isset($filename))&&(file_exists($filename))){
     header("Content-length: ".filesize($filename));
     header('Content-Type: application/octet-stream');
     header('Content-Disposition: attachment; filename="' . $name . '"');
     ob_clean();  
     flush();
     readfile("$filename");
  } else {
     $info="Looks like file does not exist!";
     return $info;
  }
}

?>

posted on 2016-07-08 10:23  易怀源  阅读(497)  评论(0编辑  收藏  举报