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

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

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  } 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品中文字幕在线 | 91啪在线观看国产在线 | 精品国产品国语在线不卡丶 | 美女胸又大又黄又www小说 | 久久毛片基地 | 国外欧美一区另类中文字幕 | 亚洲人成在线观看一区二区 | 国产日韩欧美不卡www | 亚洲国产一区二区三区青草影视 | 亚洲精品91香蕉综合区 | 1024国产精品视频观看 | 亚洲成av人片天堂网 | 草免费视频 | 羞羞漫画视频 | 喜马拉雅听书免费版 | 国产成人精品视频午夜 | 美女扒开腿让男生桶爽漫画 | 国产caoni555在线观看 | 精品日本三级在线观看视频 | 69看片| 狠狠综合网 | 久久99精品久久久久久园产越南 | 日本在线不卡免 | 亚洲成在人线久久综合 | 精品小视频在线 | 女教师雪白老汉 | 肉文高h文 | 国语精彩对白2021 | 全是女性放屁角色的手游 | 精品国产人成亚洲区 | h玉足嫩脚嗯啊白丝 | 亚洲AV国产国产久青草 | 久9青青cao精品视频在线 | 亚洲国产自 | 精品91| 国产chinese男同gay | 欧美video丝袜连裤袜bd | 大肥臀风间由美 中文字幕 大东北chinesexxxx露脸 | 1717she精品视频在线观看 | 国产性视频 | 精品国产成人 |