首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php文件下载封装成一个类 老是多出3个字节,请教错哪了

2014-05-11 
php文件下载封装成一个类 老是多出3个字节,请问哪里错了?class FileDown {public $fileNamepublic $fileS

php文件下载封装成一个类 老是多出3个字节,请问哪里错了?


     class FileDown {
       public $fileName;
       public $fileSize;
       //转码 gb2312     
  function __construct($fileName){
  $this->fileName=iconv("utf-8","gb2312",$fileName);
  }
       function Down (){
       //$_SERVER['DOCUMENT_ROOT']当前运行脚本所在的文档根目录。在服务器配置文件中定义。
      $path=$_SERVER['DOCUMENT_ROOT']."/12/".$this->fileName;
      if(!file_exists($path)){
      die("文件不存在");
      }      
        $fp=fopen($path,"r");   //读入
            $this->fileSize=filesize($path); 
      //返回文件的头 浏览器靠头识别下载  //返回
      //返回的文件类型 流 可以是文本 二进制
  header("Content-type: application/octet-stream");
  //按照字节大小返回
  header("Accept-Ranges: bytes");
  //返回文件大小
  header("Accept-Length: $this->fileSize");
  //这里客户端的弹出对话框,对应的文件名
  header("Content-Disposition: attachment; filename=".$this->fileName);  
    $count=0;
   $buffer=1024;
   while(!feof($fp)&& $this->fileSize-$count>0){
           $fileData=fread($fp,$buffer);
           $count+=$buffer;
           echo $fileData;
   }
      fclose($fp);
    }
       }   
    $fd=new FileDown("白羊座.png");
     $fd->Down ();

[解决办法]
http://baike.baidu.com/subview/126558/5073178.htm

热点排行