PHP下载文件程序中的疑问

[复制链接]
查看11 | 回复2 | 2009-4-19 06:49:08 | 显示全部楼层 |阅读模式
if(isset($_COOKIE['selfile'])){

$selfile=$_COOKIE['rootpath'].$_COOKIE['dirpath'].$_COOKIE['selfile'];//得到文件的完整路径名
header('Content-type:application/force-download');
header('Content-Transfer-Encoding:Binary');
header('Content-Disposition:attachment;filename='.$_COOKIE['selfile']);
readfile($selfile);
}
我搞不懂的是最后一句,为什么要用readfile()。我查了下书,readfile()是输出文件内容,但我执行程序时直接就弹出了下载文件对话框。请问readfile()在这里有什么作用呢?

回复

使用道具 举报

千问 | 2009-4-19 06:49:08 | 显示全部楼层
你还不了解HTTP协议...浏览器请求一个下载.得到服务器响应是 头信息 + 内容实体.内容实体就是要下载的文件内容.. 所以当然需要用readfile()了...建议楼主去看看HTTP协议..(RFC2616).了解了一些HTTP知识,做网站才能知道为什么这样??...
回复

使用道具 举报

千问 | 2009-4-19 06:49:08 | 显示全部楼层
php下载文件的方法就是指定头信息然后输出要下载的内容你只指定了头信息浏览器会出提示框但是你下载什么啊当然是文件的内容啊readfile就用到了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行