fread有问题,下载的数据在页面出现乱码

来源:2-11 文件下载函数封装

慕设计8067928

2017-08-25 10:04:16


function down_file(string $filename,array $allowDownExt=['jpg','png','zip','jpeg','gif']) {
//    echo $filename,'<br>';
   //检测下载文件是否可在,并且可读
   if (!is_file($filename) || !is_readable($filename)) {
       return false;
   }
//    echo 'a','<br>';
   $Ext=strtolower(pathinfo($filename,PATHINFO_EXTENSION));
   if (!in_array($Ext ,$allowDownExt)){
       return false;
   }
//    echo 'b','<br>';
   //通过heder()发送头信息
   //告诉浏览器输出的是字节流
   header('Content-type:application/octet-stream');

   //告诉浏览器返回的文件大小是按照字节进行计算的
   header('Accept-Ranges:bytes');

   //告诉浏览器返回的文件大小
   header('Accept-Length:'.filesize($filename));
   echo '文件大小', filesize($filename);

   //告诉浏览器文件作为附件处理,告诉浏览器最终下载完的文件名称
   header('Content-Disposition:attachment;filename=Lorraine_'.basename($filename));

   $read_buffer = 1024;

   $handle = fopen($filename,'rb');
   while (!feof($handle)) {
       echo fread($handle,$read_buffer);
   }
   fclose($handle);
   exit();

}

写回答

1回答

好帮手慕查理

2017-08-25

您好,我们这边测试下载的内容是没有问题的哦!请您反馈您显示页面的错误信息。祝学习愉快!

0

0 学习 · 2569 问题

查看课程