PHP实现HTTP断点续传的方法
程序员文章站
2022-03-14 12:25:37
本文实例讲述了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程序设计有所帮助。
上一篇: 男性也可练瑜伽 8个合适的瑜伽动作
下一篇: 惊了!中国首家机器人餐厅开业