国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP實現HTTP斷點續傳的方法

2024-05-04 23:36:22
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP實現HTTP斷點續傳的方法,實例分析了php基于http協議斷點續傳下載文件的實現方法,需要的朋友可以參考下

本文實例講述了PHP實現HTTP斷點續傳的方法。分享給大家供大家參考。具體實現方法如下:

 

 
  1. <?php 
  2. /** 
  3. * PHP-HTTP斷點續傳實現 
  4. * @param string $path: 文件所在路徑 
  5. * @param string $file: 文件名 
  6. * @return void 
  7. */ 
  8. function download($path,$file) { 
  9. $real = $path.'/'.$file
  10. if(!file_exists($real)) { 
  11. return false; 
  12. $size = filesize($real); 
  13. $size2 = $size-1; 
  14. $range = 0; 
  15. if(isset($_SERVER['HTTP_RANGE'])) { 
  16. header('HTTP /1.1 206 Partial Content'); 
  17. $range = str_replace('=','-',$_SERVER['HTTP_RANGE']); 
  18. $range = explode('-',$range); 
  19. $range = trim($range[1]); 
  20. header('Content-Length:'.$size); 
  21. header('Content-Range: bytes '.$range.'-'.$size2.'/'.$size); 
  22. else { 
  23. header('Content-Length:'.$size); 
  24. header('Content-Range: bytes 0-'.$size2.'/'.$size); 
  25. header('Accenpt-Ranges: bytes'); 
  26. header('application/octet-stream'); 
  27. header("Cache-control: public"); 
  28. header("Pragma: public"); 
  29. //解決在IE中下載時中文亂碼問題 
  30. $ua = $_SERVER['HTTP_USER_AGENT']; 
  31. if(preg_match('/MSIE/',$ua)) { 
  32. $ie_filename = str_replace('+','%20',urlencode($file)); 
  33. header('Content-Dispositon:attachment; filename='.$ie_filename); 
  34. else { 
  35. header('Content-Dispositon:attachment; filename='.$file); 
  36. $fp = fopen($real,'rb+'); 
  37. fseek($fp,$range); 
  38. while(!feof($fp)) { 
  39. set_time_limit(0); 
  40. print(fread($fp,1024)); 
  41. flush(); 
  42. ob_flush(); 
  43. fclose($fp); 

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玛沁县| 乌什县| 那曲县| 佛教| 盘锦市| 房产| 上栗县| 青阳县| 山东| 东辽县| 高碑店市| 德保县| 右玉县| 扬州市| 黄陵县| 攀枝花市| 屏东县| 叶城县| 河池市| 泰和县| 舒兰市| 巍山| 拉萨市| 安平县| 南乐县| 琼中| 称多县| 三河市| 齐齐哈尔市| 彰化市| 长宁区| 漳平市| 普陀区| 准格尔旗| 堆龙德庆县| 扬中市| 中江县| 确山县| 黑河市| 大余县| 金湖县|