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如何与Pusher实现实时通信?(WebSocket示例)  如何批量查询域名的建站时间记录?  Android仿QQ列表左滑删除操作  Swift中循环语句中的转移语句 break 和 continue  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  Laravel怎么实现验证码(Captcha)功能  Laravel如何使用Livewire构建动态组件?(入门代码)  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Laravel如何配置任务调度?(Cron Job示例)  深圳网站制作平台,深圳市做网站好的公司有哪些?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  利用python获取某年中每个月的第一天和最后一天  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  Android实现代码画虚线边框背景效果  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  如何用5美元大硬盘VPS安全高效搭建个人网站?  制作公司内部网站有哪些,内网如何建网站?  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  网站制作软件有哪些,制图软件有哪些?  如何在云服务器上快速搭建个人网站?  微信小程序 闭包写法详细介绍  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  如何快速打造个性化非模板自助建站?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Android Socket接口实现即时通讯实例代码  JavaScript如何实现错误处理_try...catch如何捕获异常?  香港服务器如何优化才能显著提升网站加载速度?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  常州企业网站制作公司,全国继续教育网怎么登录?  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  非常酷的网站设计制作软件,酷培ai教育官方网站?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)