本文实例讲述了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程序设计有所帮助。