用PHP实现浏览器点击下载TXT文档的方法详解


Posted in PHP onJune 02, 2013

由于现在的浏览器已经可以识别txt文档格式,如果只给txt文档做一个文字链接的话,点击后只是打开一个新窗口显示txt文件的内容,并不能实现点击下载的目的。当然这个问题的解决办法也可以是将txt文件改名为浏览器不认识的文件(比如rar),这样的话,由于浏览器不能识别rar类型的文件,只能让用户下载了。还有一种办法,就是利用代码通过header设置文档的格式来实现点击下载的目的。
PHP代码如下:
===========================================================
$filename = '/path/'.$_GET['file'].'.txt'; //文件路径
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($filename));
readfile($filename);
===========================================================
简要说明:
第一个header函数设置Content-Type的值为application/force-download;
第二个header函数设置要下载的文件。注意这里的filename是不包含路径的文件名,filename的值将来就是点击下载后弹出对话框里面的文件名,如果带路径的话,弹出对话框的文件名就是未知的;
最后通过readfile函数,将文件流输出到浏览器,这样就实现了txt文件的下载。

PHP 相关文章推荐
php5.2以下版本无json_decode函数的解决方法
May 25 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
Nov 06 PHP
smarty内置函数config_load用法实例
Jan 22 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
php实现的验证码文件类实例
Jun 18 PHP
php通过文件头判断格式的方法
May 28 PHP
PHP怎样用正则抓取页面中的网址
Aug 09 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 PHP
php 防止表单重复提交两种实现方法
Nov 03 PHP
PHP调用接口用post方法传送json数据的实例
May 31 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 PHP
优化PHP代码技巧的小结
Jun 02 #PHP
PHP无限分类(树形类)的深入分析
Jun 02 #PHP
基于php无限分类的深入理解
Jun 02 #PHP
php curl的深入解析
Jun 02 #PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
Jun 02 #PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
Jun 01 #PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
Jun 01 #PHP
You might like
刚才在简化php的库,结果发现很多东西
2006/12/31 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
php计算函数执行时间的方法
2015/03/20 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
javascript concat数组累加 示例
2009/09/03 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
vue与bootstrap实现简单用户信息添加删除功能
2019/02/15 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
2020/09/11 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
Python中subprocess的简单使用示例
2015/07/28 Python
django初始化数据库的实例
2018/05/27 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
Django中FilePathField字段的用法
2020/05/21 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
前端制作动画的几种方式(css3,js)
2016/12/12 HTML / CSS
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
校园文明倡议书
2014/05/16 职场文书
教师工作失职检讨书
2014/09/18 职场文书
教师节感谢信
2015/01/22 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
2021/07/01 MySQL