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()
?>
