php支持分块与断点续传文件功能代码.doc

php支持分块与断点续传文件功能代码.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
php支持分块与断点续传文件功能代码

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 + $st

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档