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

发布时间 - 2026-01-11 00:53:42    点击率:

话不多说,请看代码:

<?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"); //只需填写文件名即可
?>

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


# php实现文件下载代码  # php  # 文件下载  # Php中文件下载功能实现超详细流程分析  # php 下载保存文件保存到本地的两种实现方法  # php利用header函数实现文件下载时直接提示保存  # PHP实现远程下载文件到本地  # php实现文件下载代码分享  # PHP文件下载类  # 实现php加速的eAccelerator dll支持文件打包下载  # php下载文件的代码示例  # 解决PHP超大文件下载  # 断点续传下载的方法详解  # ThinkPHP实现将本地文件打包成zip下载  # 只需  # 不存在  # 做一个  # 过大  # 多说  # 该文件  # 读了  # 是否存在  # Demo  # Object  # DownfileSource  # wamp  # www  # file_exists  # echo  # fclose  # qq  # txt  # filepath 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: ,怎么在广州志愿者网站注册?  开心动漫网站制作软件下载,十分开心动画为何停播?  制作电商网页,电商供应链怎么做?  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  手机软键盘弹出时影响布局的解决方法  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  如何在万网开始建站?分步指南解析  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Laravel定时任务怎么设置_Laravel Crontab调度器配置  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  潮流网站制作头像软件下载,适合母子的网名有哪些?  简单实现Android验证码  如何在腾讯云服务器上快速搭建个人网站?  Laravel怎么使用artisan命令缓存配置和视图  长沙做网站要多少钱,长沙国安网络怎么样?  如何在阿里云通过域名搭建网站?  如何快速上传建站程序避免常见错误?  微信小程序 wx.uploadFile无法上传解决办法  Python文件流缓冲机制_IO性能解析【教程】  教学论文网站制作软件有哪些,写论文用什么软件 ?  如何快速查询网站的真实建站时间?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  如何快速完成中国万网建站详细流程?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Linux安全能力提升路径_长期防护思维说明【指导】  如何打造高效商业网站?建站目的决定转化率  如何在Windows环境下新建FTP站点并设置权限?  大连 网站制作,大连天途有线官网?  在centOS 7安装mysql 5.7的详细教程  如何用腾讯建站主机快速创建免费网站?  JavaScript实现Fly Bird小游戏  Python图片处理进阶教程_Pillow滤镜与图像增强  如何用AI帮你把自己的生活经历写成一个有趣的故事?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel如何发送系统通知?(Notification渠道示例)  如何有效防御Web建站篡改攻击?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Laravel如何使用Eloquent进行子查询  JavaScript如何实现继承_有哪些常用方法  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  高端建站三要素:定制模板、企业官网与响应式设计优化