php强制下载类型的实现代码

2015-01-24信息快讯网

有时需要一些文件不能在线打开,而是执行后需要下载,这时就用这个函数就可以解决了

 
function downloadFile($file){ 
/*Coded by Alessio Delmonti*/         
        $file_name = $file; 
        $mime = 'application/force-download'; 
        header('Pragma: public');       // required 
        header('Expires: 0');           // no cache 
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
        header('Cache-Control: private',false); 
        header('Content-Type: '.$mime); 
        header('Content-Disposition: attachment; filename="'.basename($file_name).'"'); 
        header('Content-Transfer-Encoding: binary'); 
        header('Connection: close'); 
        readfile($file_name);           // push it out 
        exit(); 
} 

php将文件下载下来而不是超链接下载,这样可以减少盗链的情况!将文件给浏览器让浏览器下载

以txt类型为例

由于现在的浏览器已经可以识别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写的获取各搜索蜘蛛爬行记录代码
php计算十二星座的函数代码
gd库图片下载类实现下载网页所有图片的php代码
用PHP+MySQL搭建聊天室功能实例代码
Linux下实现PHP多进程的方法分享
php调用dll的实例操作动画与代码分享
PHP服务器页面间跳转实现方法
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
php切割页面div内容的实现代码分享
PHP中防止直接访问或查看或下载config.php文件的方法
PHP5权威编程阅读学习笔记 附电子书下载
php中根据变量的类型 选择echo或dump
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
php下载文件的代码示例
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
PHP 基于文件头的文件类型验证类函数
PHP 第二节 数据类型之转换
PHP 第二节 数据类型之数组
php 获取全局变量的代码
PHP在字符断点处截断文字的实现代码
PHP运行时强制显示出错信息的代码
PHP5中虚函数的实现方法分享
php中将地址生成迅雷快车旋风链接的代码[测试通过]
PHP curl模拟浏览器采集阿里巴巴的实现代码
PHP中的session永不过期的解决思路及实现方法分享
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
php中显示数组与对象的实现代码
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
php做下载文件的实现代码及文件名中乱码解决方法
Base64在线编码解码实现代码 演示与下载
PHP中=赋值操作符对不同数据类型的不同行为
php目录操作函数之获取目录与文件的类型
php foreach 参数强制类型转换的问题
Mysql数据库操作类( 1127版,提供源码下载 )
整理的9个实用的PHP库简介和下载
php通过文件头检测文件类型通用代码类(zip,rar等)
©2014-2024 dbsqp.com