php强制下载指定类型文件的代码

WBOY
发布: 2016-07-25 09:00:35
原创
905 人浏览过
  1. //提示下载
  2. //site http://bbs.it-home.org
  3. function downloadFile($file){
  4. /*Coded by Alessio Delmonti*/
  5. $file_name = $file;
  6. $mime = 'application/force-download';
  7. header('Pragma: public'); // required
  8. header('Expires: 0'); // no cache
  9. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  10. header('Cache-Control: private',false);
  11. header('Content-Type: '.$mime);
  12. header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
  13. header('Content-Transfer-Encoding: binary');
  14. header('Connection: close');
  15. readfile($file_name); // push it out
  16. exit();
  17. }
  18. ?>
复制代码

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

以txt类型为例

避免txt文件在浏览器中直接打开的方法,可以将txt文件改名为浏览器不认识的文件(比如rar),这样的话,由于浏览器不能识别rar类型的文件,只能让用户下载了。 以上办法,有时很不适用哦。

我们采用另外一种办法,通过php 文件头部header信息来设置文档的格式来实现点击下载的目的。 示例:

  1. //php header函数强掉下载
  2. // site bbs.it-home.org
  3. $filename = '/path/'.$_GET['file'].'.txt'; //文件路径
  4. header("Content-Type: application/force-download");
  5. header("Content-Disposition: attachment; filename=".basename($filename));
  6. readfile($filename);
  7. ?>
复制代码

说明: 第一个header函数设置Content-Type的值为application/force-download; 第二个header函数设置要下载的文件。注意这里的filename是不包含路径的文件名,filename的值将来就是点击下载后弹出对话框里面的文件名,如果带路径的话,弹出对话框的文件名就是未知的; 最后通过readfile函数,将文件流输出到浏览器,实现了txt文件的下载。



来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!