主页面wenjianceshi.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd" >
<html xmlns= "http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv= "content-type" content= "text/html; charset=utf-8" />
<title>文件</title>
<link href= "../fengzhuang/bootstrap/css/bootstrap.min.css" rel= "external nofollow" rel= "stylesheet" type= "text/css" />
<script src= "../fengzhuang/jquery-3.1.1.min.js" ></script>
<script src= "../fengzhuang/bootstrap/js/bootstrap.min.js" ></script>
<style type= "text/css" >
*{
font-family: "微软雅黑" ;}
#wai{width:400px;
margin:0 auto;
padding:0px;}
#chuanshu{
width:400px;
margin:0 auto;
padding:0px;}
.waibtn{
width:100%;;
height:30px;}
.wjm,.wjbtn{
width:50%;
height:100%;
float:left;
}
</style>
</head>
<body>
<div id= "chuanshu" >
<form role= "form" action= "upload.php" method= "post" enctype= "multipart/form-data" >
<div class = "form-group" >
<label for = "inputfile" >文件输入</label>
<input type= "file" name= "file" id= "inputfile" >
</div>
<button type= "submit" class = "btn btn-default" >上传</button>
</form>
</div>
<br /><br /><br />
<div id= "wai" >
<?php
session_start();
//定义目录
$fname = "./a" ; //需要显示的目录
if (! empty ( $_session [ "fname" ]))
{
$fname = $_session [ "fname" ];
}
$pname = dirname( $fname ); //取上级目录
if ( realpath ( $fname )== "d:\\wamp\\www\\lt\\a" ) //注意路径的匹配
{
} //到达了需要显示的最上层目录就不显示上一层标签了
else
{
echo "<button type='button' id='prev' class='btn waibtn btn-success' url='{$pname}'>返回上一层</button>" ;
}
//遍历目录下的所有文件显示
$arr = glob ( $fname . "/*" );
foreach ( $arr as $v )
{
$name = basename ( $v ); //从完整路径中取文件名
$name = iconv( "gbk" , "utf-8" , $name );
if ( is_dir ( $v ))
{
echo "<button type='button' class='btn dir waibtn btn-primary' url='{$v}'>{$name}</button>" ;
}
else
{
echo "<button type='button' class='btn waibtn item btn-default' url='{$v}'><div class='wjm'>{$name}</div><div class='wjbtn'><a href='download.php? url={$v}'><input type='button' value='下载' url='{$v}' class='download btn btn-warning btn-xs' /></a> </div></button>" ;
}
}
?>
</div>
</body>
<script type= "text/javascript" >
$( ".dir" ).click( function (){
var url = $(this).attr( "url" );
$.ajax({
url: "chuli2.php" ,
data:{url:url},
type: "post" ,
datatype: "text" ,
success: function (data){
window.location.href= "wenjianceshi.php" rel= "external nofollow" rel= "external nofollow" ;
}
});
})
$( "#prev" ).click( function (){
var url = $(this).attr( "url" );
$.ajax({
url: "chuli2.php" ,
data:{url:url},
type: "post" ,
datatype: "text" ,
success: function (data){
window.location.href= "wenjianceshi.php" rel= "external nofollow" rel= "external nofollow" ;
}
});
})</script>
</html>
|
显示:
上传处理页面upload.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
|
<?php
if ( $_files [ "file" ][ "error" ])
{
echo $_files [ "file" ][ "error" ];
}
else
{
if ( $_files [ "file" ][ "size" ]<10240000)
{
//防止文件名重复
$filename = "./a/" .time(). $_files [ "file" ][ "name" ];
//转码
$filename = iconv( "utf-8" , "gb2312" , $filename );
if ( file_exists ( $filename ))
{
echo "该文件已存在" ;
}
else
{
//保存文件
move_uploaded_file( $_files [ "file" ][ "tmp_name" ], $filename );
header( "location:wenjianchuanshu.php" );
}
}
else
{
echo "文件类型不对" ;
}
}
|
点击选择文件之后选中了文件会显示:
点击上传即可。
下载处理页面download.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
|
<?php
$url = $_get [ "url" ];
$bname = basename ( $url );
header( "content-type:text/html;charset=utf-8" );
$file_name = "{$bname}" ;
//用以解决中文不能显示出来的问题
$file_name =iconv( "utf-8" , "gb2312" , $file_name );
$file_sub_path = $_server [ 'document_root' ];
$file_path = "{$url}" ;
//首先要判断给定的文件存在与否
if (! file_exists ( $file_path )){
echo "没有该文件" ;
return ;
}
$fp = fopen ( $file_path , "r" );
$file_size = filesize ( $file_path );
//下载文件需要用到的头
header( "content-type: application/octet-stream" );
header( "accept-ranges: bytes" );
header( "accept-length:" . $file_size );
header( "content-disposition: attachment; filename=" . $file_name );
$buffer =10240000;
$file_count =0;
//向浏览器返回数据
while (! feof ( $fp ) && $file_count < $file_size ){
$file_con = fread ( $fp , $buffer );
$file_count += $buffer ;
echo $file_con ;
}
fclose( $fp );
|
点击下载会弹出下载框,然后进行下载即可。
点击文件夹或者上一层的处理页面chuli2.php
1
2
3
4
|
<?php
session_start();
$url = $_post [ "url" ];
$_session [ "fname" ] = $url ;
|
以上所述是小编给大家介绍的php文件上传及下载附带显示文件及目录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/gaobint/archive/2017/04/27/6774336.html