PHP使用range协议实现输出文件断点续传代码实例
range协议用途:一般是用在断点续传的时候,但是实际的用户很大,例如你的web server需要输出一个大文件,那么用range可以分段输出,缓解压力。同时在提供音乐视频等服务时可以缓冲下载,如果用户中途关闭,可以节约网络带宽。// 文件名
$filename = $_GET ['filename']; // 文件路径 // 后缀 if ($extension == "mp3") { if (! file_exists ( $location )) { $size = filesize ( $location ); $fm = @fopen ( $location,'rb' ); $begin = 0; if (isset ( $_SERVER ['HTTP_RANGE'] )) {
} if (isset ( $_SERVER ['HTTP_RANGE'] )) { header ( "Content-Type: $mimeType" ); if (isset ( $_SERVER ['HTTP_RANGE'] )) { header ( "Content-Disposition: inline; filename=$filename" ); $cur = $begin; // 定位指针 while ( ! feof ( $fm ) && $cur <= $end && (connection_status () == 0) ) { range协议官方文档:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |