一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php支持分塊與斷點續傳文件下載功能代碼 - php上

php支持分塊與斷點續傳文件下載功能代碼 - php上

2024-10-30 11:30網絡整理 PHP教程

php支持分塊與斷點續傳文件下載功能代碼 本文章要介紹了這篇文章是一篇關于php流下載,就是可以支持分塊與斷點續傳文件下載,有需要的朋友可以看看,代碼如下:$dowmFile = dirname ( __FILE__ ) . /Nokia - Always Here.mp3; //要

php支持分塊與斷點續傳文件下載功能代碼

本文章要介紹了這篇文章是一篇關于php流下載,就是可以支持分塊與斷點續傳文件下載,有需要的朋友可以看看,代碼如下:

$dowmFile = dirname ( __FILE__ ) . '/Nokia - Always Here.mp3'//要下載的文件,絕對或相對 $dowmName = 'Nokia - Always Here.mp3'ob_start (); getlocalfile ( $dowmFile$dowmName ); flush (); ob_flush (); function getlocalfile($fname$filename = '') {   $fsize = filesize ( $fname );   header ( 'Cache-Control: public' );   header ( 'Pragma: public' );   header ( 'Accept-Ranges: bytes' );   header ( 'Connection: close' );   header ( 'Content-Type: ' . MIMEType ( $fname ) );   //header('Content-Type: application/octet-stream');   if (isset ( $filename {0} )) {     header ( 'Content-Disposition: attachment;filename=' . $filename );   }   if ($fp = @fopen ( $fname'rb' )) {     $start = 0;     $end = $fsize    $isRange = isset ( $_SERVER ['HTTP_RANGE'] ) && ($_SERVER ['HTTP_RANGE'] != '');     if ($isRange) {       preg_match ( '/^bytes=([0-9]*)-([0-9]*)$/i'$_SERVER ['HTTP_RANGE'], $match );       $start = $match [1];       $end = $match [2];       $isset_start = isset ( $start {0} );       $isset_end = isset ( $end {0} );       if ($isset_start && $isset_end) {         //分塊下載         if ($start >= $fsize || $start < 0 || $start > $end) {           $start = 0;           $end = $fsize        } else if ($end >= $fsize) {           $end = $fsize - $start        } else {           $end -= $start - 1;         }       } else if ($isset_start && ! $isset_end) {         //指定位置到結束         if ($start >= $fsize || $start < 0) {           $start = 0;           $end = $fsize        } else {           $end = $fsize - $start        }       } else if (! $isset_start && $isset_end) {         //最后n個字節         $end = $end > $fsize ? $fsize : $end        $start = $fsize - $end      } else {         $start = 0;         $end = $fsize      }     }     if ($isRange) {       fseek ( $fp$start );       header ( 'HTTP/1.1 206 Partial Content' );       header ( 'Content-Length: ' . $end );       header ( 'Content-Ranges: bytes ' . $start . '-' . ($end + $start - 1) . '/' . $fsize );     } else {       header ( 'Content-Length: ' . $fsize );     }     if (function_exists ( 'fpassthru' ) && ($end + $start) == $fsize) {       fpassthru ( $fp );     } else {       echo fread ( $fp$end );     }   } else {     header ( 'Content-Length: ' . $fsize );     readfile ( $fname );   }   //@header("Content-Type: ".mime_content_type($fname)); function MIMEType($fname) {   $fileSuffix = strtolower ( substr ( $fnamestrrpos ( $fname'.' ) + 1 ) );   switch ($fileSuffix) {     case 'avi' :       return 'video/msvideo'    case 'wmv' :       return 'video/x-ms-wmv'    case 'txt' :       return 'text/plain'    case 'htm' :     case 'html' :     case 'php' :       return 'text/html'    case 'css' :       return 'text/css'    case 'js' :       return 'application/javascript'    case 'json' :     case 'xml' :     case 'zip' :     case 'pdf' :     case 'rtf' :     case 'tar' :       return 'application/' . $fileSuffix    case 'swf' :       return 'application/x-shockwave-flash'    case 'flv' :       return 'video/x-flv'    case 'jpe' :     case 'jpg' :       return 'image/jpeg'    case 'jpeg' :     case 'png' :     case 'gif' :     case 'bmp' :     case 'tiff' :       return 'image/' . $fileSuffix    case 'ico' :       return 'image/vnd.microsoft.icon'    case 'tif' :       return 'image/tiff'    case 'svg' :     case 'svgz' :       return 'image/svg+xml'    case 'rar' :       return 'application/x-rar-compressed'    case 'exe' :     case 'msi' :       return 'application/x-msdownload'    case 'cab' :       return 'application/vnd.ms-cab-compressed'    case 'aif' :       return 'audio/aiff'    case 'mpg' :     case 'mpe' :     case 'mp3' :       return 'audio/mpeg'    case 'mpeg' :     case 'wav' :     case 'aiff' :       return 'audio/' . $fileSuffix    case 'qt' :     case 'mov' :       return 'video/quicktime'    case 'psd' :       return 'image/vnd.adobe.photoshop'    case 'ai' :     case 'eps' :     case 'ps' :       return 'application/postscript'    case 'doc' :     case 'docx' :       return 'application/msword'    case 'xls' :     case 'xlt' :     case 'xlm' :     case 'xld' :     case 'xla' :     case 'xlc' :     case 'xlw' :     case 'xll' :       return 'application/vnd.ms-excel'    case 'ppt' :     case 'pps' :       return 'application/vnd.ms-powerpoint'    case 'odt' :       return 'application/vnd.oasis.opendocument.text'    case 'ods' :       return 'application/vnd.oasis.opendocument.spreadsheet'    default ://開源代碼phpfensi.com       if (function_exists ( 'mime_content_type' )) {         $fileSuffix = mime_content_type ( $filename );       } else {         $fileSuffix = 'application/octet-stream'      }       return $fileSuffix      break  } 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 嫩草影院永久一二三入口 | 青草草在线 | 热99re久久精品国产 | 91免费高清视频 | 国产123区 | 第一次出血videos | 成人影院www在线观看 | 校花在公车上被内射好舒 | www.最色| 国产成人精品视频一区 | 美女把腿开让我 | 欧美人与牲动交xxx 欧美人妖另类性hd 欧美人人干 | 国产91精品在线播放 | 国产精品一区久久精品 | 欧美日本一本线在线观看 | 天天操免费视频 | 日本伦理动漫在线观看 | 午夜精品久久久久久久99蜜桃 | free service性v极品 | 亚洲AV 日韩 国产 有码 | 翁公与小莹在客厅激情 | 1717she精品视频在线观看 | 91短视频在线观看2019 | 91大神第九部红酒气质女 | 国产精品对白刺激久久久 | 乌克兰肛交影视 | 国产香蕉一区二区在线网站 | 久久精品午夜一区二区福利 | 亚洲男人第一天堂 | 手机看片国产自拍 | 亚洲成人免费看 | 全肉一女n男np高h双龙养成 | 四虎2020紧急免费入口 | 九九九九在线视频播放 | 岛国在线播放v片免费 | 高清麻生希在线 | 欧美视频一区二区三区在线观看 | 国产精品一区二区不卡的视频 | 亚洲国产精品嫩草影院久久 | 国产午夜精品不卡视频 | 国产免费一区二区三区免费视频 |