Welcome 微信登录

首页 / 网页编程 / PHP / PHP实现HTTP断点续传的方法

本文实例讲述了PHP实现HTTP断点续传的方法。分享给大家供大家参考。具体实现方法如下:
<?php/** * PHP-HTTP断点续传实现 * @param string $path: 文件所在路径 * @param string $file: 文件名 * @return void */function download($path,$file) {$real = $path."/".$file;if(!file_exists($real)) {return false;}$size = filesize($real);$size2 = $size-1;$range = 0;if(isset($_SERVER["HTTP_RANGE"])) {header("HTTP /1.1 206 Partial Content");$range = str_replace("=","-",$_SERVER["HTTP_RANGE"]);$range = explode("-",$range);$range = trim($range[1]);header("Content-Length:".$size);header("Content-Range: bytes ".$range."-".$size2."/".$size);} else {header("Content-Length:".$size);header("Content-Range: bytes 0-".$size2."/".$size);}header("Accenpt-Ranges: bytes");header("application/octet-stream");header("Cache-control: public");header("Pragma: public");//解决在IE中下载时中文乱码问题$ua = $_SERVER["HTTP_USER_AGENT"];if(preg_match("/MSIE/",$ua)) {$ie_filename = str_replace("+","%20",urlencode($file));header("Content-Dispositon:attachment; filename=".$ie_filename);} else {header("Content-Dispositon:attachment; filename=".$file);}$fp = fopen($real,"rb+");fseek($fp,$range);while(!feof($fp)) {set_time_limit(0);print(fread($fp,1024));flush();ob_flush();}fclose($fp);}
希望本文所述对大家的php程序设计有所帮助。