快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

php文件下载的原理

创新互联建站是一家专注于成都网站设计、成都网站制作与策划设计,绿春网站建设哪家好?创新互联建站做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:绿春等地区。绿春做网站价格咨询:18980820575

      //对函数的说明

      //参数说明 $file_name 文件名

      //$file_sub_dir: 下载文件的子路径 '"/xxx/xxx/"

      function down_file($file_name,$file_sub_dir){

             //死去活来,演示下载一个图片.

             //如果文件是中文.

             //原因 php文件函数,比较古老,需要对中文转码 gb2312

             $file_name=iconv("utf-8","gb2312",$file_name);

             //绝对路径

             $file_path=$_SERVER['DOCUMENT_ROOT'].$file_sub_dir.$file_name;

             //如果你希望绝对路径

             //1.打开文件

             if(!file_exists($file_path)){

                    echo "文件不存在!";

                    return ;

             }

             $fp=fopen($file_path,"r");

             //获取下载文件的大小

             $file_size=filesize($file_path);

             if($file_size>30){

                    echo "";

                    return ;

             }

             //返回的文件

             header("Content-type: application/octet-stream");

             //按照字节大小返回

             header("Accept-Ranges: bytes");

             //返回文件大小

             header("Accept-Length: $file_size");

             //这里客户端的弹出对话框,对应的文件名

             header("Content-Disposition: p_w_upload; 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("吕虎林.jpg","/http/down/");

?>


文章标题:php文件下载的原理
网站网址:http://6mz.cn/article/jccocp.html

其他资讯