PHP实现文件下载【实例分享】

 更新时间:2017年04月28日 14:59:20   作者:下页、再停留  
本篇文章主要介绍了PHP实现文件下载的示例代码。具有很好的参考价值。下面跟着小编一起来看下吧

话不多说,请看代码:

<?php

/**
*
*参数说明:
*
*  $file_name  文件名(中英文)
*  $_SERVER['DOCUMENT_ROOT']  获取apache所在路径
*
*/

function download($file_name){
   //对中文文件名进行转码
    $file_name=iconv("UTF-8","GB2312",$file_name);  
     //文件绝对路径:E:/wamp/www."/Demo/Object/DownfileSource/".qq.txt
    $filepath = $_SERVER['DOCUMENT_ROOT']."/Demo/Object/DownfileSource/".$file_name;  

     if(!file_exists($filepath)){ //检查文件是否存在
      echo "该文件不存在!";
     return;
     }

     $fp = fopen($filepath, 'r');  //打开文件
      $file_size = filesize($filepath);  //计算文件大小
      if ($file_size>1) {
       echo "<script>window.alert('文件过大,您没权限下载')</script>";
       return;
      }

     //HTTP头部信息
      header("Content-type: application/octet-stream");
      header("Accept-Ranges: bytes");
    header("Accept-Length: ".$file_size);
      header("Content-Disposition: attachment; filename=".$file_name);

      //输出文件内容 echo fread($fp, $file_size);

    $buffer = 1024;
    //为了下载安全,做一个文件字节读取计数器
    $file_count = 0;
    //判断文件是否结束 feof
    while (!feof($fp) && ($file_size-$file_count > 0)) {

      $file_data = fread($fp, $buffer); //统计读了多少字节
      $file_count+=$buffer;

      echo "$file_data"; //把数据会送给浏览器
    }
     fclose($fp);
}
//调用
 download("qq.txt"); //只需填写文件名即可
?>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

相关文章

  • 浅谈php7的重大新特性

    浅谈php7的重大新特性

    PHP7将在2015年10月正式发布,PHP7 ,将会是PHP脚本语言的重大版本更新,同时将带来大幅的性能改进和新的特性,以及改进一些过时功能。 该 发布版本将会专注在性能加强,源自PHP版本树中的phpng分支。
    2015-10-10
  • php给一组指定关键词添加span标签的方法

    php给一组指定关键词添加span标签的方法

    这篇文章主要介绍了php给一组指定关键词添加span标签的方法,涉及php正则替换的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • 基于php实现的验证码小程序

    基于php实现的验证码小程序

    本文主要介绍了基于php实现的验证码小程序的具体实现方法,并做了详细注释,有利于理解与学习,需要的朋友一起来看下吧
    2016-12-12
  • php实现的中秋博饼游戏之绘制骰子图案功能示例

    php实现的中秋博饼游戏之绘制骰子图案功能示例

    这篇文章主要介绍了php实现的中秋博饼游戏之绘制骰子图案功能,涉及php图形绘制中位置、颜色、形状等相关属性设置操作技巧,需要的朋友可以参考下
    2017-11-11
  • PHP简洁函数(PHP简单明了函数语法)

    PHP简洁函数(PHP简单明了函数语法)

    笔者由于碰到用户多次修改页面,所以在麻烦的情况下,改用php完成技术开发,这篇文章主要记录PHP简洁函数,讲述PHP简单明了函数语法,适合人群为对开源社区感兴趣,对php感兴趣,有一点时间了解下php,希望对读者带来快乐
    2012-06-06
  • PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解

    PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解

    这篇文章主要介绍了PHP从零开始打造自己的MVC框架之类的自动加载实现方法,结合具体实例形式详细分析了MVC框架类的自动加载原理、定义、实现方法及相关操作技巧,需要的朋友可以参考下
    2019-06-06
  • 一个非常实用的php文件上传类

    一个非常实用的php文件上传类

    这篇文章主要为大家详细介绍了一个非常实用的php文件上传类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • PHP中多维数组的foreach遍历示例

    PHP中多维数组的foreach遍历示例

    这篇文章主要介绍了PHP中多维数组的foreach遍历,需要的朋友可以参考下
    2014-06-06
  • 利用php操作memcache缓存的基础方法示例

    利用php操作memcache缓存的基础方法示例

    Memcache函数库是在PECL(PHP Extension Community Library)中,主要作用是搭建大容量的内存数据的临时存放区域,在分布式的时候作用体现的非常明显,否则不建议使用。本文将给大家介绍了关于利用php操作memcache缓存的基础方法,需要的朋友可以参考下。
    2017-08-08
  • PHP学习笔记 (1) 环境配置与代码调试

    PHP学习笔记 (1) 环境配置与代码调试

    学习php第一步就是需要配置php运行环境,这个是基础,需要的朋友可以参考下。
    2011-06-06

最新评论