php利用header函数下载各种文件


Posted in PHP onAugust 24, 2016

本文实例为大家分享了php header函数下载文件实现代码,供大家参考,具体内容如下

http://www.php.net/manual/en/function.readfile.php

<?php
/**
* 下载文件
* header函数
*
*/


dl_file($_GET ['filename']);

function dl_file($file)
{
 $file = ".//images//" . $file;
 //First, see if the file exists
 
 if (! is_file ( $file ))
 {
  die ( "<b>404 File not found!</b>" );
 }
 
 // Gather relevent info about file
 $len = filesize ( $file );
 $filename = basename ( $file );
 $file_extension = strtolower ( substr ( strrchr ( $filename, "." ), 1 ) );
 
 // This will set the Content-Type to the appropriate setting for the file
 switch ($file_extension)
 {
  case "pdf" :
   $ctype = "application/pdf";
   break;
  case "exe" :
   $ctype = "application/octet-stream";
   break;
  case "zip" :
   $ctype = "application/zip";
   break;
  case "doc" :
   $ctype = "application/msword";
   break;
  case "xls" :
   $ctype = "application/vnd.ms-excel";
   break;
  case "ppt" :
   $ctype = "application/vnd.ms-powerpoint";
   break;
  case "gif" :
   $ctype = "image/gif";
   break;
  case "png" :
   $ctype = "image/png";
   break;
  case "jpeg" :
  case "jpg" :
   $ctype = "image/jpg";
   break;
  case "mp3" :
   $ctype = "audio/mpeg";
   break;
  case "wav" :
   $ctype = "audio/x-wav";
   break;
  case "mpeg" :
  case "mpg" :
  case "mpe" :
   $ctype = "video/mpeg";
   break;
  case "mov" :
   $ctype = "video/quicktime";
   break;
  case "avi" :
   $ctype = "video/x-msvideo";
   break;
  
  // The following are for extensions that shouldn't be downloaded
  // (sensitive stuff, like php files)
  case "php" :
  case "htm" :
  case "html" :
  case "txt" :
   die ( "<b>Cannot be used for " . $file_extension . " files!</b>" );
   break;
  
  default :
   $ctype = "application/force-download";
 }
 
 
 $file_temp = fopen ( $file, "r" );
 
 
 // Begin writing headers
 header ( "Pragma: public" );
 header ( "Expires: 0" );
 header ( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
 header ( "Cache-Control: public" );
 header ( "Content-Description: File Transfer" );
 // Use the switch-generated Content-Type
 header ( "Content-Type: $ctype" );
 // Force the download
 $header = "Content-Disposition: attachment; filename=" . $filename . ";";
 header ( $header );
 header ( "Content-Transfer-Encoding: binary" );
 header ( "Content-Length: " . $len );
 
 
 //@readfile ( $file );
 echo fread ( $file_temp, filesize ( $file ) );
 fclose ( $file_temp );
 
 exit ();
}

?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP array_push 数组函数
Dec 26 PHP
php实现文件下载更能介绍
Nov 23 PHP
php发送get、post请求的6种方法简明总结
Jul 08 PHP
php跨站攻击实例分析
Oct 28 PHP
PHP冒泡算法详解(递归实现)
Nov 10 PHP
PHP连接操作access数据库实例
Mar 30 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
php根据日期或时间戳获取星座信息和生肖等信息
Oct 20 PHP
详解EventDispatcher事件分发组件
Dec 25 PHP
降低PHP Redis内存占用
Mar 23 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
php伪静态验证码不显示的解决方案
Sep 26 PHP
php强制下载文件函数
Aug 24 #PHP
PHP简单实现数字分页功能示例
Aug 24 #PHP
PHP自定义函数获取URL中一级域名的方法
Aug 23 #PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
Aug 23 #PHP
PHP简单判断手机设备的方法
Aug 23 #PHP
PHP实现批量检测网站是否能够正常打开的方法
Aug 23 #PHP
PHP Cookie学习笔记
Aug 23 #PHP
You might like
PHP6 mysql连接方式说明
2009/02/09 PHP
PHP中调用ASP.NET的WebService的代码
2011/04/22 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
JavaScript 学习历程和心得分享
2010/12/12 Javascript
基于jQuery的图片剪切插件
2011/08/03 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
[51:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第二局
2016/03/03 DOTA
python和shell监控linux服务器的详细代码
2018/06/22 Python
python禁用键鼠与提权代码实例
2019/08/16 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
python实现简单坦克大战
2020/03/27 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
美国户外生活方式品牌:Eddie Bauer
2016/12/28 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
办公室主任岗位职责
2013/11/08 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
幼儿园迎国庆65周年活动策划方案
2014/09/16 职场文书
工作简报格式范文
2015/07/21 职场文书