php檔案下載封裝成一個類 老是多出3個位元組,請教錯哪了

來源:互聯網
上載者:User
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
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.