<?php
// 文件下载
header('Content-type:text/html; charset=utf-8');
define('ROOT_PATH', dirname(__FILE__));
// 封装一个下载文件的函数
function download_file($file_path) {
// 转码
$file_path = iconv('utf-8', 'gb2312', $file_path);
// 判断文件是否存在
if (!file_exists($file_path)) {
exit('文件不存在');
}
// 获得文件名
$filename = basename($file_path);
$filesize = filesize($file_path);
// 设定下载响应头
header('Content-type:application/octet-stream');
header('Accept-ranges:bytes');
header("Content-Disposition:attachment; filename=".$filename);
header("Accept-length:".$filesize);
// 输出文件
if ($filesize < 8192) {
// 小文件
echo file_get_contents($file_path);
} else {
// 大文件
$fp = @fopen($file_path, 'r') or die();
// 判定是否可读,然后再读
while (!feof($fp)) {
echo fread($fp, 1024);
}
// 关闭文件
fclose($fp);
}
}
download_file(ROOT_PATH."./uploads/b.txt"); //我的测试
?>
PHP文件下载封装函数
最新推荐文章于 2021-03-18 15:03:03 发布