PHP下载文件程序中的疑问

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:23:23
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()在这里有什么作用呢?

你还不了解HTTP协议...

浏览器请求一个下载.
得到服务器响应是 头信息 + 内容实体.
内容实体就是要下载的文件内容.. 所以当然需要用readfile()了...

建议楼主去看看HTTP协议..(RFC2616).
了解了一些HTTP知识,做网站才能知道为什么这样??

php下载文件的方法就是指定头信息然后输出要下载的内容
你只指定了头信息浏览器会出提示框但是你下载什么啊当然是文件的内容啊readfile就用到了