所谓实现文本文件的下载就是说当咱们点击一个文本文件的连接的时候不是打开这个文件,而是弹出一个下载对话框让咱们下载php
这就是今天讨论的主要问题。PHP帮助文档里面关于PHP经过header触发下载的说明比较简单,而网上关于此方面的文章也少的可怜,有不少文章都没法实现所须要的效果。今天我也来谈一下这个方面的话题,若是你感受比网上的某些文章有所改进,那我就很满足了。
app
若是从准确的角度来讲,那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');
这三句是正确的,可是在真正用的过程当中很容易出现一些没法预料的问题,若是你是一个很仔细的人的话,也能够很容易的避免这些问题。而我不是,因此我就遇到了这样的问题,这里就以个人问题来简单说一下。
到这里,咱们的问题就解决了,从而也就实现了文本文件连接被点击的时候会触发下载对话框的效果。spa
代码以下:注意红色部分code
$filename = '路径+实际文件名'; //文件的类型 header('Content-type: application/pdf'); //下载显示的名字 header('Content-Disposition: attachment; filename="保存时的文件名.pdf"'); readfile("$filename"); exit();
下面是网上经常使用的方法 文档
if (isset($link)) { Header("HTTP/1.1 303 See Other"); Header("Location: $link"); exit; }
$link就是文件的实际路径。 it