<?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
?>