PHP通过header实现文本文件下载的代码

2015-01-24信息快讯网

所谓实现文本文件的下载就是说当我们点击一个文本文件的链接的时候不是打开这个文件,而是弹出一个下载对话框让我们下载

这就是今天讨论的主要问题。PHP帮助文档里面关于PHP通过header触发下载的说明比较简单,而网上关于此方面的文章也少的可怜,有很多文章都无法实现所需要的效果。今天我也来谈一下这个方面的话题,如果你感觉比网上的某些文章有所改进,那我就很知足了。

如果从准确的角度来说,那PHP文档是最准确的,因为它很简练的列出了实现文本类文件触发下载所需要的三条语句,以PDF为例就是:
 
// We'll be outputting a PDF 
header('Content-type: application/pdf'); 
// It will be called downloaded.pdf 
header('Content-Disposition: attachment; filename="downloaded.pdf"'); 
// The PDF source is in original.pdf 
readfile('original.pdf'); 

这三句是正确的,但是在真正用的过程中很容易出现一些无法预料的问题,如果你是一个很仔细的人的话,也可以很容易的避免这些问题。而我不是,所以我就遇到了这样的问题,这里就以我的问题来简单说一下。

对于第一句,应该没啥说的,是必须的,只要改一下文档的类型就行,例如是下载txt文件,那就改为header(‘Content-type: application/txt');,第二句也没啥说的,就是为你的下载文档起一个名字,如果是txt文件的话,可以改为header(‘Content-Disposition: attachment; filename=”downloaded.txt”‘);,第三句的问题就比较多了,readfile这个函数的意思就是读取一个文件然后输出,这里文件的路径需要是真实的文件路径,如果是downloads文件夹下面的一个original.txt文件,可以这样写readfile(‘downloads/original.txt');,而如果提交的页面会输出文本等字符,那么下载到的文件会是原文件original.txt和提交的页面输出的文字的混合文件。我在这里就缺少了仔细的观察,一看下面不对就立即去查代码了,而没发现上面的文本就是我需要的内容,发现了这部分内容,你可能就很快想到怎么来解决这个问题了,也就是关闭提交到的页面的文本内容的输出。

到这里,我们的问题就解决了,从而也就实现了文本文件链接被点击的时候会触发下载对话框的效果。
解决文件名解压后乱码的问题 将文件名进行转码的代码
php中通过正则表达式下载内容中的远程图片的函数代码
如何用phpmyadmin设置mysql数据库用户的权限
使用PHPMyAdmin修复论坛数据库的图文方法
第六章 php目录与文件操作
php文件怎么打开 如何执行php文件
在WINDOWS中设置计划任务执行PHP文件的方法
php中使用DOM类读取XML文件的实现代码
PHP spl_autoload_register实现自动加载研究
使用PHP实现密保卡功能实现代码<打包下载直接运行>
Admin generator, filters and I18n
抓取并下载CSS中所有图片文件的php代码
PHP通过正则表达式下载图片到本地的实现代码
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
PHP header函数分析详解
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
php header Content-Type类型小结
php设计模式 Facade(外观模式)
The specified CGI application misbehaved by not returning a complete set of HTTP headers
PHP中uploaded_files函数使用方法详解
字母顺序颠倒而单词顺序不变的php代码
php下保存远程图片到本地的办法
phpMyAdmin 链接表的附加功能尚未激活的问题
php feof用来识别文件末尾字符的方法
php上传文件的增强函数
生成ubuntu自动切换壁纸xml文件的php代码
PHP编码规范之注释和文件结构说明
php操作excel文件 基于phpexcel
《Head First 设计模式》代码之PHP版(面向对象学习)第1/2页
PHP XML error parsing SOAP payload on line 1
PHP迅雷、快车、旋风下载专用链转换代码
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
phpmyadmin里面导入sql语句格式的大量数据的方法
php下连接ftp实现文件的上传、下载、删除文件实例代码
PHP 强制性文件下载功能的函数代码(任意文件格式)
php带密码功能并下载远程文件保存本地指定目录 修改加强版
php 仿Comsenz安装效果代码打包提供下载
PHP 页面编码声明方法详解(header或meta)
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
php利用header函数实现文件下载时直接提示保存
php header 详细使用说明与使用心得第1/2页
PHP setcookie() cannot modify header information 的解决方法
©2014-2024 dbsqp.com