php下载文件头代码,php利用header实现文件下载代码

在php中如果要实现下载如图片文件,php文件,html文件这些文件我们如果在网站上点击都是直接打开了,如果要实现下载我们可以利用php header函数来操作,下面我来介绍利用php header函数实现文件下载的实例,有需要的朋友可参考。

例1

 代码如下复制代码

function download($file_url,$new_name=''){

if(!isset($file_url) || trim($file_url)==''){

return '500';

}

if(!file_exists($file_url)) { //检查文件是否存在

return '404';

}

$file_name=basename($file_url);

$file_type=explode('.',$file_url);

$file_type=$file_type[count($file_type)-1];

$file_name=trim($new_name=='')?$file_name:urlencode($new_name).'.'.$file_type;

$file_type=fopen($file_url,'r'); //打开文件

//输入文件标签

header("Content-type: application/octet-stream");

header("Accept-Ranges: bytes");

header("Accept-Length: ".filesize($file_url));

header("Content-Disposition: attachment; filename=".$file_name);

//输出文件内容

echo fread($file_type,filesize($file_url));

fclose($file_type);

}

例2

以下php代码可以解决:

 代码如下复制代码

if( empty($_GET['FileName'])|| empty($_GET['FileDir'])|| empty($_GET['FileId'])){

echo''; exit();

}

$file_name=$_GET['FileName'];

$file_dir=$_GET['FileDir'];

$FileId=$_GET['FileId'];

$file_dir = $file_dir."/";

if   (!file_exists($file_dir.$file_name))   {   //检查文件是否存在

echo   "文件找不到";

exit;

}   else   {

$file = fopen($file_dir . $file_name,"r"); // 打开文件

// 输入文件标签

Header("Content-type: application/octet-stream");

Header("Accept-Ranges: bytes");

Header("Accept-Length: ".filesize($file_dir . $file_name));

Header("Content-Disposition: attachment; filename=" . $file_name);

// 输出文件内容

echo fread($file,filesize($file_dir . $file_name));

fclose($file);

exit();

}

?>

直接下载文件

 代码如下复制代码
<?php

$file = get_file_address();// 文件的真实地址(支持url,不过不建议用url)

if (file_exists($file)) {

header('Content-Description: File Transfer');

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename='.basename($file));

header('Content-Transfer-Encoding: binary');

header('Expires: 0');

header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

header('Pragma: public');

header('Content-Length: ' . filesize($file));

ob_clean();

flush();

readfile($file);

exit;

}

?>

小提示,header函数不只是可以实现文件下载,他还有很多的功能哦,如发送404,301等等状态信息都是可以的哦。

注意:在使用header之前我们必须在header之前没有任何输出,否则就会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值