guanli.php
1 <head>
2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3 <title>文件管理</title>
4
5 <script src="../jquery-1.11.2.min.js"></script>
6
7 <style type="text/css">
8 .list{ width:100%; height:40px; border:1px solid #60F; margin:1px 0px 1px 0px; text-align:left; vertical-align:middle; line-height:40px;}
9 .list:hover{ cursor:pointer}
10 .mulu{ background-color:#6FC;}
11 .prev{ background-color:#F00; color:white}
12 </style>
13
14 </head>
15
16 <body>
17
18 <?php
19 session_start();
20
21 $fname = "./qiyezhan";
22 if(!empty($_SESSION["url"]))
23 {
24 $fname = $_SESSION["url"];
25 }
26
27 $purl = dirname($fname);
28
29 if($fname!="./qiyezhan")
30 {
31 echo "<div class='list prev' lj='{$purl}'>返回上一层</div>";
32 }
33
34 $dir = opendir($fname);
35
36 while($zwenjian = readdir($dir))
37 {
38 if($zwenjian!="." && $zwenjian!="..")
39 {
40 $zurl = $fname."/".$zwenjian;
41 if(is_dir($zurl))
42 {
43 echo "<div lj='{$zurl}' class='list mulu'>{$zwenjian}</div>";
44 }
45 else
46 {
47 echo "<div class='list'>{$zwenjian}</div>";
48 }
49
50 }
51 }
52
53 closedir($dir);
54
55 ?>
56
57 </body>
58
59 <script type="text/javascript">
60 $(".mulu").dblclick(function(){
61 var lujing = $(this).attr("lj");
62 $.ajax({
63 url:"chuli.php",
64 data:{lj:lujing},
65 type:"POST",
66 dataType:"TEXT",
67 success: function(){
68 window.location.href="guanli.php";
69 }
70 });
71 })
72
73 $(".prev").dblclick(function(){
74 var lujing = $(this).attr("lj");
75 $.ajax({
76 url:"chuli.php",
77 data:{lj:lujing},
78 type:"POST",
79 dataType:"TEXT",
80 success: function(){
81 window.location.href="guanli.php";
82 }
83 });
84 })
85
86 </script>
87 </html>
chuli.php
1 <?php 2 session_start(); 3 $lj = $_POST["lj"]; 4 $_SESSION["url"] = $lj;
对文件管理的详细解释
1 <title>文件管理</title> 2 <script src="jquery-1.11.2.min.js"></script> 3 <style type="text/css"> 4 .list{ width:100%; height:40px; border:1px solid #60F; margin:1px 0px 1px 0px; text-align:left; vertical-align:middle; line-height:40px;} 5 .list:hover{ cursor:pointer} 6 .mulu{ background-color:#0CF;} 7 .prev{ background-color:#F00; color:write} 8 9 </style> 10 11 12 </head> 13 14 <body> 15 <?php 16 //session还有个性质: 17 //session有缓存 当选项卡关闭再打开一个新的选项卡时session还有。 18 //如果是把整个网页关掉了,那session就没了。 19 20 21 //当执行完ajax刷新完页面后取session里面的值 22 session_start(); 23 //此时页面要打开的文件夹是下面的$fname 24 //要双击文件夹往里进的话需要改变这个页面要打开的文件夹,可以在$fname下面加个条件 25 26 $fname = "./0309"; //给一个文件夹0309来做例子 27 if(!empty($_SESSION["url"])) 28 { 29 //如果session里面有值的话就把$fname变为$_SESSION["url"] 30 $fname = $_SESSION["url"]; 31 } 32 //再实现往外后退的功能 33 //在前台页面显示的所有文件div的最上面加上一个往后退的div实现往后退的功能 34 //class类里面有list是因为有共同的样式,又多加了个prev是来写特殊样式的 35 //然后再给prev添加样式 36 37 38 //$purl是返回上个文件夹的完整路径 可以知道它的路径后来实现返回功能 39 $purl = dirname($fname);//dirname()方法就是代表取路径中的一直把文件名扔掉到它的目录名为止后的路径 40 //再把$purl扔到div里面作为属性,再对div里面的prev增加一个双击事件实现返回上一层的功能 41 42 //增加一个条件来限制返回后退超出0309这个文件夹 43 if($fname!="./0309") 44 { 45 echo"<div class='list prev' lj='{$purl}'>返回上一层</div>"; 46 } 47 48 $dir =opendir($fname); //首先打开文件夹 49 50 while($zwenjian =readdir($dir)) //遍历打开后的文件夹里的所有文件 51 { 52 if($zwenjian!="."&&$zwenjian!="..") //除掉 "." 和 ".." 两种情况 53 { //$zwenjain是每个文件的文件名 所以应该在<div>{$zwenjian}</div>标签里面显示。 54 $zurl = $fname."/".$zwenjian; //写出遍历出的每一个文件的完整路径,方便以后来进行操作 55 //$zurl代表每个文件或文件夹的完整路径 56 if(is_dir($zurl)) //判断显示的是文件夹还是文件 57 { //如果是文件夹,就需要设置两个class名来方便和文件区分。 当给文件夹增加双击事件的时候需要知道点击了谁,所以就需要在div里设置个路径 lj 58 echo "<div lj= '{$zurl}' class='list mulu'>{$zwenjian}</div>";//是文件夹的情况 59 } 60 else 61 { //设置个list是方便为了添加样式使其变得好看些 62 echo "<div class='list'>{$zwenjian}</div>";//是文件的情况。 63 } 64 } 65 } 66 closedir($dir); //关闭文件夹 67 ?> 68 69 </body> 70 <script type="text/javascript"> 71 72 //在好几个div里面显示了每个文件或文件夹的名字后就需要给是文件夹这种情况的添加双击事件,则运用jquery 73 $(".mulu").dblclick(function(){ //mulu的class名是文件夹独有的,所以用jquery设置mulu双击事件 74 var lujing = $(this).attr("lj"); //来取一个路径就等于双击选中的文件夹里面的属性lj= '{$zurl}' 75 //取到双击选中的文件夹的完整路径后就要在这个页面显示选中的这个文件夹里的所有文件 76 //而不是显示$fname = "./0309";这个一开始给的路径了 77 //取到了即将要访问的路径后要存下来后,当前页面要访问到我们存的这个路径就可以打开了 78 //把这个路径存在某一个地方,然后这个当前页面还能取到这里面的值 79 //所以可以存到session里面去。但是JS又不能直接操作session,所以用到ajax把路径打到处理页面 80 //从处理页面里面存上 81 $.ajax({ 82 url:"cli.php", 83 data:{lj:lujing}, 84 type:"POST", 85 dataType:"TEXT", 86 success:function(){ 87 //当ajax执行完之后,要在当前页面显示,所以刷新页面 88 window.location.href="998866.php"; 89 } 90 }); 91 }) 92 $(".prev").dblclick(function(){ 93 var lujing = $(this).attr("lj"); //来取一个路径就等于双击选中的文件夹里面的属性lj= '{$zurl}' 94 //取到双击选中的文件夹的完整路径后就要在这个页面显示选中的这个文件夹里的所有文件 95 //而不是显示$fname = "./0309";这个一开始给的路径了 96 //取到了即将要访问的路径后要存下来后,当前页面要访问到我们存的这个路径就可以打开了 97 //把这个路径存在某一个地方,然后这个当前页面还能取到这里面的值 98 //所以可以存到session里面去。但是JS又不能直接操作session,所以用到ajax把路径打到处理页面 99 //从处理页面里面存上 100 $.ajax({ 101 url:"cli.php", 102 data:{lj:lujing}, 103 type:"POST", 104 dataType:"TEXT", 105 success:function(){ 106 //当ajax执行完之后,要在当前页面显示,所以刷新页面 107 window.location.href="998866.php"; 108 } 109 }); 110 }) 111 //又因为是往后返回最里面的话是0309文件夹,所以得增加个限制条件才可以不至于返回的超出0309文件夹 112 //增加的限制条件就是当打开0309这个文件夹时就让当前页面不显示返回上一层的这个div 113 </script> 114 </html>