php之简单的文件管理(基本功能)
先做一下简单的查看文件功能,文件中的文件和文件夹都显示,但是双击文件夹可以显示下一级子目录,双击<返回上一级>就可以返回到上一级目录
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>php之简单的文件管理(基本功能)</title>
<script src="jquery-1.11.2.min.js"></script> 加载jquery-1.11.2.min.js
<style type="text/css">
*{margin: 0px auto; padding: 0px;}
.file{width: 50%; height: 35px; line-height: 35px; vertical-align: middle; border: 1px solid #60F; margin-top: 2px;}/*给文件加条件*/
.mulu{ background-color: #639; color: white;}/*给文件夹目录加样式*/
.prev{ background-color: #F63; color: white;}/*给返回上一级的div加点样式*/
#delete{ float:right}
</style>
</head>
<body>
<?php
session_start();//要写在php的最顶端
//要显示的文件夹
$fname = "../../php";//$fname要显示这个文件夹下的内容
//这个要写在“打开目录资源的上面”
if(!empty($_SESSION["url"]))
{
$fname = $_SESSION["url"];
}
//输出返回上一层的DIV
$jdlj = realpath($fname);
//echo $jdlj;//输出看看绝对路径
if($jdlj == "D:\\wamp\\www\\php")//文件的绝对路径
{
//echo "aa";//如果路径相等就为空
}
else
{
$fuji = dirname($fname);//文件的上级目录。 否则就输出没有文件名的路径
echo "<div class='file prev' lj='{$fuji}' >返回上一级</div>";//给prev加事件下面。 输出这个div
}
//遍历文件夹
$dir = opendir($fname);//遍历文件夹,打开目录资源.显示里面的文件
while($n = readdir($dir))//循环读取
{
$url = $fname."/".$n;//拼个路径
if($n!="." && $n!="..")//去掉前面点点点的
{
if(is_dir($url))//判断路径是不是目录
{
echo "<div class='file mulu' lj='{$url}' >{$n}</div>";//如果是目录,就进这个,起个名字,双击这个进入下一个子目录
}
else
{
//echo "<div class='file' lj='{$url}'>{$n}</div>";//文件名。 //如果不是目录,就进入这个。统一的起个名字,这样好给他们写样式
echo "<div class='file' lj='{$url}'>{$n}
<input type='button' value='删除' lj='{$url}' class='sc'/>
</div>";
}
}
}
closedir($dir);//关闭目录资源
?>
<!--新建文件-->
<input type="text" id="name" /><!--文本框用来输入文件名-->
<input type="button" value="新建" id="newf" />
</body>
<script type="text/javascript">
//找到这个目录,然后加双击加事件.dblclick
$(".mulu").dblclick(function(){
var url = $(this).attr("lj");//点击这个目录,找到这个目录的路径
$.ajax({
url:"chuli.php",//编写处理页面
data:{url:url}, //将路径传到处理页面
type:"POST", //传值方式
dataType:"TEXT",
success:function(r){
window.location.href = "test.php"; //刷新页面
}
});
})
//下面返回上一级的
$(".prev").dblclick(function(){
var url = $(this).attr("lj");
$.ajax({
url:"chuli.php",
data:{url:url},
type:"POST",
dataType:"TEXT",
success:function(r){
window.location.href = "test.php";
}
});
})
//给删除加点击事件
$(".sc").click(function(){
var lj = $(this).attr("lj");
$.ajax({
url:"shanchu.php",
data:{lj:lj},
type:"POST",
success:function(r){
dataType:"TEXT",
window.location.href = "test.php";
}
});
})
//新建按钮
$("#newf").click(function(){
var name = $("#name").val();//用户输入的文件名
$.ajax({
url:"xinjian.php",
data:{name:name},
type:"POST",
success:function(r){
dataType:"TEXT",
window.location.href = "test.php";
}
});
})
</script>
</html>
处理页面:chuli.php
<?php
session_start();//处理页面的编写(这里不能用post或是get传值了,可以用session传值方式传值比较好)。session_start();要写在php的最顶端
$url = $_POST["url"];
$_SESSION["url"] = $url;
?>
删除处理页:shanchu.php
<?php
$lj = $_POST["lj"];
unlink($lj);
?>
新建处理页:xinjian.php
<?php
session_start();
$name = $_POST["name"];//取到上级目录。根据上级目录创建文件。获取传递过来的名字
$url = $_SESSION["url"];//把$_SESSION["url"]里面的url取出来。保存的路径位置
$filename = $url."/".$name;//他是name文件名。拼凑一个完整路径
touch($filename);//新建文件方法touch()
?>