关闭

php下载原理

322人阅读 评论(0) 收藏 举报
分类:

       php下载原理:用户向服务器端发送一个下载文件的请求,服务器端响应之后,在内存中打开,读取文件信息,关闭文件,基本是这个步骤的。

       比如下载一个文件名为win.jpg的文件,在下载页面的代码中就需要先判断if(file_exists($文件名)),不存在的话提示文件不存在,存在的话就继续往下面执行,打开文件,用fopen($filename)函数打开文件,用filesize()函数判断一下文件大小。接下来的这段:

//返回文件(告诉浏览器)

header("Content-type:application/octet-stream");
 //按照字节大小返回
 header("Accept-Ranges:bytes");
 //返回文件的大小
 header("Accept-Length:$file_size");
 //弹窗,对应的文件名
 header("Content-Disposition:attachment;filename=".$file_name);

然后定义一个$buffer,就是每次读文件的大小,

while(!feof($fp)){
 
 $fil= fread($fp,$buffer);
 echo $fil;
 }

feof函数时候判断是否到达文件结尾了,然后就用fread()函数开始读取数据,每次读取数据量为$buffer,这个$buffer一般是以字节为单位的,可以直接设置数字的。读完之后别忘了给浏览器返回结果。

最后用fclose()关闭文件。

中文乱码问题用iconv("utf-8","gb2312",$filename)解决。
   

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:39846次
    • 积分:1090
    • 等级:
    • 排名:千里之外
    • 原创:74篇
    • 转载:2篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论