PHP实现文件上传下载之文件下载

文件下载

对于浏览器来说不识别的,可以直接下载,但对于能识别的,则需要进行一些操作

代码如下:

<?php
//获取传递过来的路径信息
$filename=$_GET['filename'];
//判断是否有值,没有则不执行下面的php语句
if($filename){
	header("Content-Disposition:attachment;filename=download_$filename");
	//Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。
	//格式:content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm 
	//Content-Disposition为属性名
    //disposition-type是以什么方式下载,如attachment为以附件方式下载
     //disposition-parm为默认保存时的文件名 
	readfile($filename);
	exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> 
 <meta name="format-detection" content="telephone=no" /> 
<title>文件下载</title>
<meta charset="utf-8" />
</head>
<body>
<a href="1.rar">下载1.rar</a>
<br />
<a href="1.jpg">下载1.jpg</a>
<br />
<a href="download.php?filename=1.jpg">通过程序下载1.jpg</a>
</body>
</html>

注:测试的时候,文件的同级目录下,必须存在1.rar、1.jpg,也可以通过修改路径,改变到自己的文件想要的文件夹下面


代码解释

有三个下载连接

  • 一个对应图片(浏览器可以识别)

  • 一个对应压缩文件(浏览器不可以识别)

  • 最后一个还是图片,我们通过传递路径给当前页面,在页面顶端的php代码中实现当成一个附件打开或者保存

  • php代码部分在程序中已经注释的很详细,大家可以参考

Weiter lernen
||
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
//
$filename=$_GET['filename'];
//php
if($filename){
header("Content-Disposition:attachment;filename=download_$filename");
//Content-disposition MIME MIME MIME
//content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm
//Content-Disposition
//disposition-typeattachment
//disposition-parm
readfile($filename);
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,
    user-scalable=no">
<meta name="format-detection" content="telephone=no" />
<title></title>
<meta charset="utf-8" />
</head>
<body>
<a href="1.rar">1.rar</a>
<br />
<a href="1.jpg">1.jpg</a>
<br />
<a href="download.php?filename=1.jpg">1.jpg</a>
</body>
</html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
einreichenCode zurücksetzen
图片放大关闭