文件下载功能是网站中常见的一个小功能,本节介绍一下它的具体实现方式。
对于浏览器支持直接浏览的文件类型,用户点击通常是直接将文件打开达到了浏览的效果,对于部分不支持直接浏览的文件,浏览器会自动实现将文件下载到本地。我们这里针对的是浏览器支持浏览的文件,通过程序来实现文件的下载,实质就是使文件以附件的形式被用户打开。
前端
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>下载</title>
</head>
<body>
<!-- 直接点击会打开文件 -->
<a href="1.jpg">下载图片</a>
<!-- 直接点击会实现下载效果 -->
<a href="doDownload.php?filename=1.jpg">通过程序下载1.jpg</a>
<a href="doDownload.php?filename=../upload/nv.jpg">下载nv.jpg</a>
</body>
</html>
后端
<?php
$filename = $_GET['filename'];
header('content-disposition:attachment;filename='.basename($filename));//告诉浏览器以附件形式处理文件
header('content-length:'.filesize($filename));
readfile($filename);
?>