$file = 'filepath';// 文件保存路径,如 ./file/a.jpg
if (!is_file($file)) {
exit('没有文件');
}
header("Content-type:application/octet-stream");
header("Content-Disposition:attachment;filename = " . basename($file));
header("Accept-ranges:bytes");
header("Accept-length:" . filesize($file));
$handle = fopen($file, 'rb');
while (!feof($handle)) {
echo fread($handle, 102400);
}
fclose($handle);
exit();
is_file():检查指定的文件是否是常规的文件
basename():返回路径中的文件名部分。
filesize():返回指定文件的大小。如果成功,该函数返回文件大小的字节数。如果失败,则返回 FALSE。
fopen():打开文件流,rg:以只读的方式打开文件
feof():检查是否已到达文件末尾(EOF)。如果出错或者文件指针到了文件末尾(EOF)则返回 TRUE,否则返回 FALSE。
fread():读取打开的文件。函数会在到达指定长度或读到文件末尾(EOF)时(以先到者为准),停止运行。该函数返回读取的字符串,如果失败则返回 FALSE。
fclose():关闭文件流