PHP下载文件函数与用法示例


Posted in PHP onSeptember 27, 2019

本文实例讲述了PHP下载文件函数与用法。分享给大家供大家参考,具体如下:

文件链接

<div>
  <a href="./file.zip" rel="external nofollow" >链接</a>
</div>

PHP拼接下载

<div>
  <a href = "http://aa.aa.aa/funtwo.php?filename='file'">链接</a>
</div>
<?php
//获取文件名 取出单引号 完善文件名
$filename = $_GET['filename'];
$filename=trim($filename,"''");
$filename = $filename.'.zip'; //获取文件名称
// header:主机名文件名 下载
$host_addr = $_SERVER['HTTP_HOST'].'/'; //当前域名
header('location:http://'.$host_addr.$filename);

Header附件下载

<?php
//下载文件名
$file_name = 'file.zip';
//以只读和二进制模式打开文件
$file = fopen ( $file_name, "rb" );
//这是一个文件流格式的文件
Header ( "Content-type: application/octet-stream" );
//请求范围的度量单位--字节
Header ( "Accept-Ranges: bytes" );
//Content-Length是指定包含于请求或响应中数据的字节长度
Header ( "Accept-Length: " . filesize (  $file_name ) );
//用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。
Header ( "Content-Disposition: attachment; filename=" . $file_name );
//读取文件内容并直接输出到浏览器
echo fread ( $file, filesize ( $file_name ) );
fclose ( $file );

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
开发大型 PHP 项目的方法
Jan 02 PHP
攻克CakePHP系列二 表单数据显示
Oct 22 PHP
php设计模式小结
Feb 15 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
PHP获取youku视频真实flv文件地址的方法
Dec 23 PHP
PHP框架Laravel的小技巧两则
Feb 10 PHP
typecho插件编写教程(四):插件挂载
May 28 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
php简单日历函数
Oct 28 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
Jan 17 PHP
PHP封装XML和JSON格式数据接口操作示例
Mar 06 PHP
详解PHP服务器如何在有限的资源里最大提升并发能力
May 25 PHP
PHP的JSON封装、转变及输出操作示例
Sep 27 #PHP
php面向对象重点知识分享
Sep 27 #PHP
php中关于换行的实例写法
Sep 26 #PHP
php伪静态验证码不显示的解决方案
Sep 26 #PHP
php源码的安装方法和实例
Sep 26 #PHP
php源码的使用方法讲解
Sep 26 #PHP
php常用的工具开发整理
Sep 26 #PHP
You might like
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
PHP加密解密类实例代码
2016/07/20 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
浅谈vuex 闲置状态重置方案
2018/01/04 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
python标准日志模块logging的使用方法
2013/11/01 Python
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
Python 实现域名解析为ip的方法
2019/02/14 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
链表面试题-一个链表的结点结构
2015/05/04 面试题
村委会主任先进事迹
2014/01/15 职场文书
四年级科学教学反思
2014/02/10 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
装配出错检讨书
2014/09/23 职场文书
2014年教研室工作总结
2014/12/06 职场文书
消费者投诉书范文
2015/07/02 职场文书
JavaScript分页组件使用方法详解
2021/07/26 Javascript