首页 > 代码库 > php之简单的文件管理(基本功能)

php之简单的文件管理(基本功能)

php之简单的文件管理(基本功能)

先做一下简单的查看文件功能,文件中的文件和文件夹都显示,但是双击文件夹可以显示下一级子目录,双击<返回上一级>就可以返回到上一级目录

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8" />
	<title>php之简单的文件管理(基本功能)</title>
	<script src="http://www.mamicode.com/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=http://www.mamicode.com/‘删除‘ lj=‘{$url}‘ class=‘sc‘/> ";
		}
	}
}

closedir($dir);//关闭目录资源


?>

<!--新建文件-->
<input type="text" id="name" /><!--文本框用来输入文件名-->
<input type="button" value="http://www.mamicode.com/新建" 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 = "http://www.mamicode.com/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 = "http://www.mamicode.com/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 = "http://www.mamicode.com/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 = "http://www.mamicode.com/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()


?>

 

php之简单的文件管理(基本功能)