09-php文件下载

来源:互联网 发布:免费注册域名送空间 编辑:程序博客网 时间:2024/06/06 10:55

文件下载函数:

<?php      //对函数的说明   //参数说明$file_name文件名   //$file_sub_dir下载文件的子路径./XXX/XXX   function down_file($file_name,$file_sub_dir){   //$file_name="abc.png";   //如果文件是中文的,会显示不存在   //产生的原因:需要对中文进行转码   //转码转成GB2312   $file_name=iconv("utf-8","GB2312", $file_name);    //绝对路径$file_path=$_SERVER['DOCUMENT_ROOT'].$file_sub_dir.$file_name;   if(!file_exists($file_path)){       echo "文件不存在!~";return;   }   $fp=fopen($file_path,"r");    //获取下载文件的大小$file_size=filesize($file_path);   //返回的文件   header("Content-type: application/octet-stream");   //按照字节大小返回   header("Accept-Ranges:bytes");   //返回文件大小是多少   header("Accept-Length: $file_size");   //对客户端的弹出框,对应的文件名   header("Content-Disposition:attachment;filename=".$file_name);   //向客户端回送数据   $buffer=1024;   //为了下载的安全,我们最好做一个文件字节读取计数器   $file_count=0;   //只要这个文件没有读完,就继续读取文件。   while(!feof($fp)&&($file_size-$file_count>0)){      $file_data=fread($fp,$buffer);  //统计读了多少个字节  $file_count+=$buffer;  //把部分数据回送给浏览器  echo $file_data;   }     //关闭文件 fclose($fp);   }//测试函数是否可用down_file("abc.png","/http/down/");?>




做成列表形式的方法: