php复习 第十一天 文件与目录3文件下载

<?php 

/*我们知道,在浏览器中如果打开部分MIME类型是不可以的。
会直接进行文件的下载,暴露文件所在的目录
例如:localhost/review/php/day12/test.zip
如何将下载路径进行伪装呢?
php扩展--php_fileinfo
以下链接来自php官方网站对此扩展的介绍
#http://php.net/manual/zh/book.fileinfo.php
*/

# 判断是否安装启动了php_fileinfo扩展
if(!function_exists('finfo_open')){
    header("Content-Type:text/html;charset=utf-8");
    die( '请先开启php_fileinfo扩展库!');
}



#简介:
#本模块中的函数通过在文件的给定位置查找特定的 魔术 字节序列 
#来猜测文件的内容类型以及编码。 虽然不是百分百的精确,但是通常情况下能够很好的工作。

# {参数1}预定义常量FILEINFO_MIME_TYPE-- mime 类型。
# 如果成功则返回带有mime类型的resource.
$fileinfo = finfo_open(FILEINFO_MIME_TYPE);

# 返回文件的mime类型
$file = 'test.zip';
$mimeType = finfo_file($fileinfo,$file);

# 关闭资源句柄
finfo_close($fileinfo);

# 发送指定的文件MIME类型的头信息
header("Content-Type:".$mimeType);

# 指定下载文件的描述
header("Content-Disposition:attachement;filename=".basename($file));

# 指定文件的大小
header("Content-Length:".filesize($file));

# 读取文件内容至输出缓冲区,返回这个文件
readfile($file);


#此时http://localhost/review/php/day12/index.php
#等价http://localhost/review/php/day12/test.zip
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值