小崔真好的专栏

Just do it!!!

php下载原理

       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)解决。
   

阅读更多
个人分类: php
上一篇php上传原理
下一篇【转载】PHP中超时提示Fatal error: Maximum execution time of 30 seconds exceeded的解决方案
想对作者说点什么? 我来说一句

PHP 缓存详情机制

2017年12月12日 87KB 下载

php实现单点登录实例

2017年04月22日 4KB 下载

PHP代理分销系统

2018年04月02日 11.5MB 下载

没有更多推荐了,返回首页

关闭
关闭