有些文件在浏览器里点击默认是打开的,如果不想打开想实现直接下载就得用代码来实现了
function download($filename){
if(empty($filename))return false;
if (!file_exists($filename)){
header("Content-type: text/html; charset=utf-8");
echo "File not found!";
exit;
} else {
$file = fopen($filename,"r");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($filename));
Header("Content-Disposition: attachment; filename=".basename($filename));
echo fread($file, filesize($filename));
fclose($file);
}
}
以上文件只支持本地文件如果要是有网上文件下载怎么办呢
/**
* 下载
* @param 要下载的文件完整路径
*/
function download($filename){
if(empty($filename))return false;
if (!check_file_exists($filename)){
header("Content-type: text/html; charset=utf-8");
echo "File not found!";
exit;
} else {
$file = fopen($filename,"r");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($filename));
Header("Content-Disposition: attachment; filename=".basename($filename));
echo fread($file, filesize($filename));
fclose($file);
}
}
/**
* 检查文件是否存在
* @param 要检查的文件完整路径
*/
function check_file_exists($filename){
if(str_exists($filename,'http')){
$fileExists = @file_get_contents($filename,null,null,-1,1) ? true : false;
}else{
$fileExists =file_exists($filename)
}
return $fileExists;
}
function str_exists($haystack, $needle){
return !(strpos($haystack, $needle) === FALSE);
}
转载至链接:https://my.oschina.net/xiaogg/blog/1923274