PHP实现如何将服务器文件下载到本地

 最近有这样一个需求,服务器上的文件,用户需要下载到本地

话不多说直接上代码~~

                                                                   

   public function downloadTemplate(){
        header("Content-type:text/html;charset=utf-8");

            $file_name = "filename.xls";     //换成你的文件名

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

            $file_sub_path = APP_PATH.'portal/data/templatefile/';    //确保文件在这个路径下面,换成你文件所在的路径

            $file_path=$file_sub_path.$file_name;

            if(!file_exists($file_path)){
                echo "下载文件不存在!";exit;         //如果提示这个错误,很可能你的路径不对,可以打印$file_sub_path查看
            }

            $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_count<$file_size){
                $file_con=fread($fp,$buffer);
                $file_count+=$buffer;
                echo $file_con;
            }

            fclose($fp);    //关闭这个打开的文件
    }

 

   /**
     * 分享者:PHP-情歌
     */

 
 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值