2种方法
<a href="文件地址">下载</a>2流输出
<?php$file=fopen('文件地址',"r")
header("Content-Type: application/octet-stream")
header("Accept-Ranges: bytes")
header("Accept-Length: ".filesize('文件地址'))
header("Content-Disposition: attachment filename=文件名称")
echo fread($file,filesize('文件地址'))
fclose($file)
?>
推荐第二种
因为第一种方法只能下载浏览器不能解析的文件,比如rar啊,脚本文件之类。如果文件是图片或者txt文档,就会直接在浏览器中打开
而第二种方法是直接输出的文件流,不存在上述问题
// 下载文件 文件用绝对路径ob_clean()
header('Pragma: public')
header('Last-Modified:'.gmdate('D, d M Y H:i:s') . 'GMT')
header('Cache-Control:no-store, no-cache, must-revalidate')
header('Cache-Control:pre-check=0, post-check=0, max-age=0')
header('Content-Transfer-Encoding:binary')
header('Content-Encoding:none')
header('Content-type:multipart/form-data')
header('Content-Disposition:attachment filename="'.$filename.'"') //设置下载的默认文件名
header('Content-length:'. filesize($dfile)) //要下载的文件
$fp = fopen($dfile, 'r')
while(connection_status() == 0 && $buf = @fread($fp, 8192)){
echo $buf
}
fclose($fp)
@unlink($dfile)
@flush()
@ob_flush()
exit()
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)