php下载

案例

这里简单的放个今天早上做的个下载的php。

下载

打开php文件,即可实现php文件的跳转下载功能。这里使用的是小皮面板。

<?php
// 实现文件的下载
// 相对路径下的文件(同文件夹下的某个文件)
$file_path = 'photo.zip';
// 获取文件名
$fname = basename($file_path);
// 获取文件的MIME 类型
$cont_type = mime_content_type($file_path);
// 获取文件的大小
$fsize = filesize($file_path);
header('Content-type:' . $cont_type);
header('Content-Disposition:attachment; filename=' . $fname);
header('Content-Length:' . $fsize);
// 读取文件内容并且输出到缓冲区
readfile($file_path);
exit;

秒截的图片如下:

img

Fileinfo扩展

常用的函数:

finfo_open(mode, magic_file)
mode: 指定文件类型的检测方式,可选值为 FILEINFO_NONE(默认)、FILEINFO_MIME_TYPE 和 FILEINFO_MIME_ENCODING。
magic_file: 指定 magic 文件的路径。
返回值:成功返回 finfo 对象,失败返回 false
功能:打开一个 Fileinfo 对象。

finfo_close(finfo)
finfo: finfo_open 函数返回的 finfo 对象。
返回值:无返回值。
功能:关闭一个 Fileinfo 对象。

finfo_file(finfo, file_name, options)
finfo: finfo_open 函数返回的 finfo 对象。
file_name: 要检测的文件路径。
options: 可选参数,可以指定检测文件的方式,可选值为 FILEINFO_NONE(默认)、FILEINFO_MIME_TYPE 和 FILEINFO_MIME_ENCODING。
返回值:如果成功,返回文件的 MIME 类型或编码,否则返回 false
功能:检测指定文件的 MIME 类型或编码。

finfo_buffer(finfo, string, options, context)
finfo: finfo_open 函数返回的 finfo 对象。
string: 要检测的字符串。
options: 可选参数,可以指定检测字符串的方式,可选值为 FILEINFO_NONE(默认)、FILEINFO_MIME_TYPE 和 FILEINFO_MIME_ENCODING。
context: 可选参数,可以传递一个上下文资源。
返回值:如果成功,返回字符串的 MIME 类型或编码,否则返回 false
功能:检测指定字符串的 MIME 类型或编码。

后面会尝试学习下接口。