加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-12 21:41:19 所属栏目: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 ( " 404 File n

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

dl_file($_GET ['filename']);

function dl_file($file)
{
$file = ".//images//" . $file;
//First,see if the file exists

if (! is_file ( $file ))
{
die ( "404 File not found!" );
}

// 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 ( "Cannot be used for " . $file_extension . " files!" );
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 ();
}

?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读