+ -
当前位置:首页 → 问答吧 → 断点继传

断点继传

时间:2007-10-27

来源:互联网

复制PHP内容到剪贴板
PHP代码:
/* 
* @url: 文件地址 
* @filename: 要保存的文件名 
*/ 
function _download($url, $filename) 

// 获得文件大小, 防止超过2G的文件, 用sprintf来读 
$filesize = sprintf("%u", filesize($url)); 

if (!$filesize) 

return; 


header("Content-type:application/x-msdownload\n"); //application/octet-stream 
header("Content-type:unknown/unknown;"); 
header("Content-disposition: inline; filename=\"".$filename."\""); 
header('Content-transfer-encoding: binary'); 

if ($range = getenv('HTTP_RANGE')) // 当有偏移量的时候,采用206的断点续传头 

$range = explode('=', $range); 
$range = $range[1]; 

header("HTTP/1.1 206 Partial Content"); 
header("Date: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Last-Modified: ".gmdate("D, d M Y H:i:s", filemtime($url))." GMT"); 
header("Accept-Ranges: bytes"); 
header("Content-Length:".($filesize - $range)); 
header("Content-Range: bytes ".$range.($filesize-1)."/".$filesize); 
header("Connection: close"."\n\n"); 

else 

header("Content-Length:".$filesize."\n\n"); 
$range = 0; 


$fp = fopen($url, 'rb'); 
fseek($fp, $range); 
while ($bbsf = fread($fp, 4096)) 

echo $bbsf; 

fclose($fp); 

}

作者: 逆雪寒   发布时间: 2007-10-26

呵呵,好啊。
:)

作者: luzhou   发布时间: 2007-10-27

wefgdfg

[ 本帖最后由 逆雪寒 于 2007-10-29 09:52 编辑 ]

作者: 逆雪寒   发布时间: 2007-10-28

看了,不明白!!!!!

作者: netboys   发布时间: 2007-11-01

而且是一句都不明白!:(

作者: netboys   发布时间: 2007-11-01

好,不错的代码!~~

作者: forest   发布时间: 2007-11-01

可惜看不懂,楼主加一些注释就好了

作者: jgcao83   发布时间: 2007-11-02

嗯,加些注释就好了

作者: yuanjing_119   发布时间: 2007-11-02

以前也实现过一个
http://www.yemaol.com/blog/?p=46
有用的上的朋友可以看看

作者: yema   发布时间: 2007-11-02