PS:这段代码在win系统下跑没有问题,枫哥亲测可用.如果用的是linux或是其他系统,要要诸位自行测试下啦.
php" id="highlighter_992941">
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
|
if (! is_file ( $filename )) { //检测文件是否存在.
die ( '下载的文件好像跟TM谁私奔啦!' );
}
$filepath = str_replace ( '\\' , '/' , realpath ( $filename ));
$filesize = filesize ( $filepath );
$filename = substr ( strrchr ( '/' . $filepath , '/' ), 1);
$extension = strtolower ( substr ( strrchr ( $filepath , '.' ), 1));
// use this unless you want to find the mime type based on extension,文件后缀格式,不解释.
$mime = array ( 'application/octet-stream' );
header( 'Content-Type: ' . $mime );
header( 'Content-Disposition: attachment; filename="' . $filename . '"' );
header( 'Content-Transfer-Encoding: binary' );
header( 'Content-Length: ' .sprintf( '%d' , $filesize ));
header( 'Expires: 0' );
// check for IE only headers,坑爹的IE检测,你懂的.
if (isset( $_SERVER [ 'HTTP_USER_AGENT' ]) &&(( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'MSIE' ) !== false)))
{
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
header( 'Pragma: public' );
}
else
{
header( 'Pragma: no-cache' );
}
$handle = fopen ( $filepath , 'rb' );
fpassthru ( $handle );
fclose( $handle );
|
这个代码是枫哥从国外的一个站点上找到的,亲测可用.度娘出来的结果,你懂的.因此在博客上共享出来,希望对大家有用.国外的站,地址忘了,没有办法放出,理解下.最后,严肃的声明下:这个代码不是我写的,是转载的.