本文实例为大家分享了PHP实现文件上传与下载的具体代码,供大家参考,具体内容如下
主页index.php
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
< html > < head > < title >图片操作</ title > < style > #contains { width: 500px; margin: 0 auto; text-align: center; color: #0F0; } th { background: #ccc; } td { width: 150px; height: 50px; text-align: center; } </ style > </ head > < body > < div id = "contains" > < h2 >图片上传和下载</ h2 > <!----------------文件上传表单-------------> < form action = "doupload.php" method = "post" enctype = "multipart/form-data" > < input type = "hidden" value = "10000000" /> <!---避免上传后发现文件过大---> < input type = "file" name = "pic" /> < input type = "submit" value = "上传" /> </ form > <!---------------------------------------> < table width = "500" border = "0" > < tr > < th >序号</ th >< th >图片</ th >< th >添加时间</ th >< th >操作</ th > </ tr > <? php //1.打开目录 $ dir = opendir ("./imgs"); //2.遍历目录 $ i = 0 ; $ color = "#ff0" ; while ($ f = readdir ($dir)){ //$f代表这每个文件的名字 if ($f == '.' || $f == "..") continue; //处理特殊隐藏的文件 $i++; if ($i % 2 == 0) $ color = "#ccc" ; else $ color = "#ffa" ; echo "<tr bgcolor=$color>"; echo "< td >{$i}</ td >"; echo "< td >< img src = './imgs/{$f}' width = '150' height = '50' /></ td >"; echo "< td >".date("Y-m-d", filectime('./imgs/'.$f))."</ td >"; echo "< td >< a href = './imgs/{$f}' >查看</ a > < a href = 'download.php?name={$f}' >下载</ a ></ td >"; echo "</ tr >"; // echo $f." "; } ?> </ table > </ div > </ body > </ html > |
上传doupload.php
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
33
34
35
|
<?php /* echo "<pre>"; var_dump($_FILES); echo "</pre>";*/ //1.获取上传文件信息 $upfile = $_FILES [ "pic" ]; $path = "./imgs/" ; //2、过滤错误信息 if ( $upfile [ "error" ] > 0) { die ( "上传文件错误" ); } //3、本次上传文件的大小过滤 if ( $upfile [ "size" ] > 10000000) { die ( "上传文件超出限制" ); } //4、处理文件类型 $typelist = array ( "jpeg" , "jpg" , "png" , "gif" ); $arr = explode ( "." , basename ( $upfile [ 'name' ])); //以'.'分割字符串为数组 $bz = array_pop ( $arr ); //获取文件的后缀名 if (!in_array( $bz , $typelist )) { //如果给定的值 value 存在于数组 array 中则返回 true die ( "上传文件类型非法!" . $upfile [ "type" ]); } //5、设置相同文件的名字不同 $newfile = date ( "YmdHis" ).rand(100, 999). "." . $bz ; // if ( is_uploaded_file ( $upfile [ "tmp_name" ])) { //判断文件是否是通过post上传 //执行文件上传 if (move_uploaded_file( $upfile [ "tmp_name" ], $path . $newfile )) { //将上传的文件保存在新位置 echo "上传成功!" ; echo "<a href='index.php'>浏览</a>" ; } else { die ( "上传失败" ); } } ?> |
下载download.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php //1.获取于要下载的文件名 $file = "./imgs/" . $_GET [ "name" ]; // echo $file; //2.重设响应类型 $info = getimagesize ( $file ); //获取文件大小 // var_dump($info); header( "Content-Type:" . $info [ "mime" ]); //3.执行下载文件名 header( "Content-Disposition:attachment;filename=" . $_GET [ "name" ]); //4.指定文件大小 header( "Content-Length:" . filesize ( $file )); //5.响应内容 readfile( $file ); ?> |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/shofe11/article/details/37520749