本文实例讲述了PHP实现断点续传下载的方法。分享给大家供大家参考。具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
$fname = 'http://XXXX/MMLDZG.mp3' ;
$fp = fopen ( $fname , 'rb' );
$fsize = filesize ( $fname );
if (isset( $_SERVER [ 'HTTP_RANGE' ]) && ( $_SERVER [ 'HTTP_RANGE' ] != "" ) && preg_match( "/^bytes=([0-9]+)-$/i" , $_SERVER [ 'HTTP_RANGE' ], $match ) && ( $match [1] < $fsize )) { $start = $match [1]; } else { $start = 0; } @header( "Cache-control: public" ); @header( "Pragma: public" ); if ( $star --> 0) {
fseek ( $fp , $start );
Header( "HTTP/1.1 206 Partial Content" );
Header( "Content-Length: " . ( $fsize - $start ));
Header( "Content-Ranges: bytes" . $start . "-" . ( $fsize - 1) . "/" . $fsize );
} else {
header( "Content-Length: $fsize" );
Header( "Accept-Ranges: bytes" );
}
@header( "Content-Type: application/octet-stream" );
@header( "Content-Disposition: attachment;filename=mmdld.mp3" );
fpassthru ( $fp );
fpassthru (); //函数输出文件指针处的所有剩余数据。
|
该函数将给定的文件指针从当前的位置读取到 EOF,并把结果写到输出缓冲区。
希望本文所述对大家的php程序设计有所帮助。