c
<?php
require"a.php";
header("Content-type:text/html;charset=utf-8");
//接收要下载的文件名字
$file_name=$_REQUIRE[''];
//调用
down_fille($file_name,"/xxx/xxx/");
?>
b
<?php
header("Content-type:text/html;charset=utf-8");
<a href='b.php?filename=sun.jpg'>点击下载</a><img src='sun.jpg'/><br/>
?>
a
<?php
//对函数的说明
//1.参数说明$file_name 文件名
// $file_sub_dir:下载文件子路径 '"/xxx/xxx/"'
function down_file($file_name,$file_sub_patth){
//死去活来,演示下载一个图片
//如果文件是中文的
//$file_name="san.jpg";
//原因PHP文件函数比较老,需要中文转码 gb2312
$flie_name=iconv("utf-8","gb2312",$file_name);
//路径
//$file_path="./文件名/".$file_name;
//如果你希望使用绝对路径
//$file_path=$_SERVER['DOCUMENT_ROOT']."./文件名/".$file_name;
//1打开文件
if(!file_exists($file_name)){
echo "文件不存在!";
return;
}
$fp=foper($file_name,"r");
//获取下载文件的大小
$file_size=filiesize($file_nsme);
//超过多少就不能下载了
if($file_soze>10*102481024){
echo "<script language='javascript'>window,alert('文件过大')</script>";
return;
}
//返回的文件
header("cache-control:application/octet-stream");
//按照字节大小返回
header("Accept-Ranges:bytes");
//返回文件大小
header("Accept-Leagth:$file_size");
//这里客户端弹出对话框,对应的文件名
header("Content-Didposition:attachment;filename=".$file_name);
//向客户端回送数据
$buffer="1024";
//为了下载安全,我们最好做一个文件字节读取计数器
$file_count=0;
//这句话判断文件是否结束
while(!feof($fp)&& ($file_size-$file_count>0)){
$file_date=fread($fp,$buffer);
//统计多少个字节
$file_count+=$buffer;
//把部分数据回送给浏览器
echo $file_deta;
}
//关闭文件
fclose($fp);
}
//测试函数
down_file(名字,"/xxx/xxx/");
?>