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

 更新时间:2010年08月08日 13:26:57   作者:  
所谓实现文本文件的下载就是说当我们点击一个文本文件的链接的时候不是打开这个文件,而是弹出一个下载对话框让我们下载
这就是今天讨论的主要问题。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中获取主机名、协议及IP地址的方法

    php中获取主机名、协议及IP地址的方法

    这篇文章主要介绍了php中获取主机名、协议及IP地址的方法,其中涉及gethostbyaddr、gethostbynamel、getprotobyname、getprotobynumber等函数及$_SERVER变量的应用,需要的朋友可以参考下
    2014-11-11
  • PHP读取大文件末尾N行的高效方法推荐

    PHP读取大文件末尾N行的高效方法推荐

    下面小编就为大家带来一篇PHP读取大文件末尾N行的高效方法推荐。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • php addslashes及其他清除空格的方法是不安全的

    php addslashes及其他清除空格的方法是不安全的

    清除空格的方法是不安全的,部分原因是因为字符中的空格非常多,例如 addslashes的问题在 于黑客 可以用0xbf27来代替单引号
    2012-01-01
  • php如何连接sql server

    php如何连接sql server

    这篇文章主要介绍了php连接sql server的方法,在连接过程中遇到的问题以及解决方法,需要的朋友可以参考下
    2015-10-10
  • php7 图形用户界面GUI 开发示例

    php7 图形用户界面GUI 开发示例

    这篇文章主要介绍了php7 图形用户界面GUI 开发,结合实例形式分析了PHP7基于php_ui扩展实现的图形用户界面GUI相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • PHP生成RSS文件类实例

    PHP生成RSS文件类实例

    这篇文章主要介绍了PHP生成RSS文件类,可实现PHP生成RSS文件的功能,对于网站建设与优化来说具有一定的实用价值,需要的朋友可以参考下
    2014-12-12
  • PHP空值检测函数与方法汇总

    PHP空值检测函数与方法汇总

    PHP是一种宽松类型的编程语言,在函数中对传入的参数值的“类型”以及”值是否为空或者NULL“进行检查是不可缺少的步骤。
    2017-11-11
  • phpinfo的知识点总结

    phpinfo的知识点总结

    在本篇文章里小编给大家分享的是关于phpinfo的知识点总结,需要的朋友们可以跟着学习下。
    2019-10-10
  • PHP中数组处理函数的使用方法详解

    PHP中数组处理函数的使用方法详解

    这篇文章主要为大家介绍了一些PHP中的数组处理函数,文中结合实例详解了PHP数组处理函数的功能与使用技巧,需要的朋友可以参考一下
    2022-04-04
  • php中session定期自动清理的方法

    php中session定期自动清理的方法

    这篇文章主要介绍了php中session定期自动清理的方法,如何设置php实现session定期自动清理,本文会给大家详细介绍,需要的朋友可以参考下
    2015-11-11

最新评论