PHP实现HTTP断点续传的方法
2017-10-09 20:36
302 查看
<?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< ada0 /span>]); 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实现HTTP断点续传的方法
- PHP实现HTTP断点续传的方法
- PHP简单实现断点续传下载的方法
- nginx/apache/php隐藏http头部版本信息的实现方法
- php之curl实现http与https请求的方法
- php之curl实现http与https请求的方法
- 用PHP实现 HTTP断点续传、分块下载文件(Socket)
- PHP简单实现断点续传下载的方法
- php实现httpRequest的方法
- HTTP 断点续传(PHP实现)
- php下HTTP Response中的Chunked编码实现方法
- php之curl实现http与https请求的方法
- php之curl实现http与https请求的方法
- delphi IdHTTP实现Get方法下载文件,断点续传
- php之curl实现http与https请求的方法
- PHP 实现断点续传的原理和方法
- 通过php实现支持断点续传的http proxy
- PHP-HTTP断点续传实现
- php中httpclient的实现方法