废话不多说,直接上代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<?php
// 暂不支持断点续传
// $url = 'http://www.mytest.com/debian.iso'; 不知道为何获取本地文件大小为0
$url = 'http://192.168.8.93/download/vm-672/18/0.vmdk' ;
$file = basename ( $url );
$header = get_headers( $url , 1);
$size = $header [ 'Content-Length' ];
$fp = fopen ( $url , 'rb' );
if ( $fp === false) exit ( '文件不存在或打开失败' );
header( 'Content-Description: File Transfer' );
header( 'Content-Type: application/octet-stream' );
header( 'Content-Disposition: attachment; filename="' . $file . '"' );
header( 'Content-Transfer-Encoding: binary' );
header( 'Expires: 0' );
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
header( 'Pragma: public' );
header( 'Content-Length: ' . $size );
ob_clean();
ob_end_flush();
set_time_limit(0);
$chunkSize = 1024 * 1024;
while (! feof ( $fp )) {
$buffer = fread ( $fp , $chunkSize );
echo $buffer ;
ob_flush();
flush ();
}
fclose( $fp );
exit ;
|
以上这篇php下载远程大文件(获取远程文件大小)的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。