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

历努 2014-01-24 06:01:13

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 ();
...全文
307 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
历努 2014-01-24
  • 打赏
  • 举报
回复
谢谢按您说的改好了
历努 2014-01-24
  • 打赏
  • 举报
回复
应该怎么改?先存gbk再存utf-8试了不行
历努 2014-01-24
  • 打赏
  • 举报
回复
新手不是很明白BOM头??
xuzuning 2014-01-24
  • 打赏
  • 举报
回复
3个字节? BOM 头?

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧