本系统主要是应用PHP对文件,及文件夹的函数操作对本地文件进行管理。<br />
功能主要有:<br />
1.创建文件<br />
2.删除文件<br />
3.编辑文件<br />
4.地址栏<br />
5.文件列表<br />
6.文件夹进入<br />
7.文件夹创建<br />
8.文件夹删除<br />
9.图片显示<br />
<br />
<br />此系统仅运行在WIN平台上
<?php
/*
* 简单文件管理操作网页版
* 功能:文件删除
* 文件添加
* 文本编辑
* 文件夹添加
* 文件夹删除
* 可以在地址栏输入路径访问
* 项目总数提示
* 文件总数提示
* 文件夹总数提示
* 剩余磁盘空间提示
* 磁盘总空间提示
* 当前目录大小显示
*
* 作者:李忠
* 日期:2011-05-20
*/
// 参考视频 编写一个简单的文件管理系统
//
define("BANQUAN","__ V2.3 | MSN:mail@lizhong.me | Power ");
if(!(isset($tijiao)) && !(isset($dirr))){
$dirr="d:/";
}
// 判断提交值进行调取函数动作*******************************
if($tijiao){
if($_GET["add"]=="Please improt filename"){ // 判断添加文件
$error="Warning:Please in the improt right's filename";
$dirr=str_replace("\\","/",$_GET["url"]);
}elseif($_GET["add"]){
$error=action($subb);
$dirr=str_replace("\\","/",$_GET["url"]);
}elseif($_GET["del"]){ // 判断删除文件
$yest=action($subb);
$dirr=$_GET["url"];
}elseif($_GET["adddir"]){ // 判断添加文件夹
$dirr=$_GET["url"];
if($_GET["adddir"]=="Please improt directroyname"){
$error="Warning: Please in the improt right's Directroyname";
$dirr=str_replace("\\","/",$_GET["url"]);
}else{
$error=action($subb);
}
}elseif($_GET["info"]){ // 进入文件夹
$dirr=str_replace("//","/",$_GET["info"]);
}elseif($_GET["dirr"]){ // 判断路径
if(file_exists($_GET["dirr"]) && is_dir($_GET["dirr"])){
$dirr=str_replace("\\","",$_GET["dirr"]);
}else{
$dirr=str_replace("\\","",$_GET["dirr"]);
$adderres="Sorry: No find the directroy of \"".$_GET["dirr"]."\"";
}
}elseif($_GET["edit"]){ // 判断编辑文本
$dirr=str_replace("\\","/",dirname($_GET["url"]));
$edit=$_GET["edit"];
$urllee=$_GET["url"];
$editfile=$urllee."/".$edit;
}elseif($_POST["editsave"]){ // 写入文本
$dirr=str_replace("\\","/",dirname($_POST["editsave"]));
$newconten=$_POST["newconten"];
$wenjianmingming=basename($_POST["editsave"]);
$xierulala=fopen($_POST["editsave"],"r+");
fwrite($xierulala,$newconten);
fclose($xierulala);
$yest="\"$wenjianmingming is saved!";
}elseif($_GET["viw"]){ // 打开照片
$dirr=str_replace("\\","/",$_GET["url"]);
$viw=$_GET["viw"];
$chatoububu=dirname($dirr);
$phototo=$chatoububu."/".$viw;
}elseif($_GET["tijiao"]=="photo"){
$dirr=str_replace("\\","/",$_GET["url"]);
}
}
// 编辑文本处理函数**************************************
// 递归处理删除文件夹函数***********************************
function deldir($deldir){
$dell=opendir($deldir); // 打开文件夹
while($fdell=readdir($dell)){
if($fdell!="." && $fdell!=".."){
$deldirr=$deldir."/".$fdell;
if(is_dir($deldirr)){
deldir($deldirr);
}elseif(is_file($deldirr)){
unlink($deldirr);
}
}
}
closedir($dell);
rmdir($deldir);
}
// 递归统计文件夹大小函数***********************************
function dirsize($muludir){
$b=opendir($muludir);
while($a=readdir($b)){
if($a!="." && $a!=".."){
$aa=$muludir."/".$a;
if(is_dir($aa)){
$sum+=dirsize($aa);
}elseif(is_file($aa)){
$sum+=filesize($aa);
}
}
}
closedir($b);
return $sum;
}
// 处理函数****************************************************
function action($sub){
$url=$_get["url"];
switch($sub){
// 执行添加文件命令条
case 1:
$add=$_GET["add"];
$dirr=$_GET["url"];
$newfile=$dirr."/".$add;
if(!file_exists($newfile)){
fopen("$newfile","w");
$dirr=dirname($newfile);
$error="\"".$add."\" file set up already";
return $error;
break;
}else{
$error="Sorry : The \"$add\" is existed!";
return $error;
break;
}
// 执行删除文件命令条
case 2:
$url=$_GET["url"];
$del=$_GET["del"];
$delfile=$url."/".$del;
if(file_exists($delfile)){
unlink($delfile);
$yest="The \"$del\" File deleted";
return $yest;
break;
}else{
$yest="Sorry : The File \"$del\" no exist!";
return $yest;
break;
}
// 执行添加文件夹命令条
case 3:
$dirr=$_GET["url"];
$adddir=$_GET["adddir"];
$adddor=$dirr."/".$adddir;
if(!file_exists($adddor)){
mkdir($adddor);
$dirr=dirname($adddor);
$error="\"".$adddir."\" Directroy set up already";
return $error;
break;
}else{
$error="Sorry : The directroy \"".$adddir."\" is existed!";
return $error;
break;
}
// 执行删除文件夹命令条
case 4:
$url=$_GET["url"];
$del=$_GET["del"];
$delfile=$url."/".$del;
if(file_exists($delfile)){
deldir($delfile);
$yest="\"".$del."\" Directory deleted";
return $yest;
break;
}else{
$yest=" Sorry: The directro \"y$del\" is no exist! ";
return $yest;
break;
}
}
}
?>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++网页 区+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++页头 区+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Briefness manage file system <?php echo BANQUAN; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
body {
background:#9d94ca;
}
a {
text-decoration:none;
color:red;
}
.jiacu {
font-weight:bold;
font-size:13px;
color:#fff;
}
</style>
</head>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++页头区 END+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++内容 区+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<body>
<!-- ++++++++++++++++++++++++文件列表表格++++++++++++++++++++++++++ -->
<center><h2>Briefness manage file system</h2></center>
<hr width="60%">
<!-- ++++++++++++++++++++++++显示当前操作目录++++++++++++++++++++++++++ -->
<!-- ++++++++++++++++++++++++导航栏++++++++++++++++++++++++++ -->
<div style="width:798px; height:30px; margin:20px auto 0px; border:1px solid #4c89ca;">
<div style="width:650px; float:left; margin-left:20px; font-size:15px; font-weight:bold; line-height:30px; color:#fff;">
<!-- ++++++++++++++++++++++++GOTO表单++++++++++++++++++++++++++ -->
<form action="a.php" method="get">
Operate Current Directroy :
<input type="text" name="dirr" size="60" value="<?php echo $dirr; ?>" />
<input type="submit" name="tijiao" value="goto" />
</form>
<!-- ++++++++++++++++++++++++GOTO表单END++++++++++++++++++++++++++ -->
</div>
<div style="float:right;
line-height:22px;
margin:5px 10px auto auto;
text-align:center;
width:70px; height:20px;
font-weight:bold;
background:#0f0;
color:#fff;
border-bottom:1px solid #666;
border-right:1px solid #666;">
<a style="color:#4a4c4a;" href="a.php?tijiao=ok&dirr=<?php echo dirname($dirr); ?>"><<Back</a>
</div>
<div style="clear:blod;"></div>
</div>
<!-- ++++++++++++++++++++++++GOTO错误提示++++++++++++++++++++++++++ -->
<?php
if($adderres){
echo "<div style=\"width:798px; height:25px; border:1px solid #9d94ca; margin:0px auto; line-height:0px; text-align:center;\">
<p style=\"line-height:0px; color:#760E18; font-size:13px; font-weight:bold;\">$adderres</p>
</div>";
}
?>
<!-- ++++++++++++++++++++++++GOTO错误提示END++++++++++++++++++++++++++ -->
<!-- ++++++++++++++++++++++++导航栏END++++++++++++++++++++++++++ -->
<!-- ++++++++++++++++++++++++显示当前操作目录END++++++++++++++++++++++++++ -->
<table align="center" width="800" border="1">
<tr>
<th width="300">File & Directroy Name</th>
<th>Type</th>
<th>Size</th>
<th>Mod-time</th>
<th>Option</th>
</tr>
<?php
// 循环遍历输出文件或文件夹目录
$summm=0;
$dirmmm=0;
$filemmm=0;
$zongsize=0;
if(file_exists($dirr) && is_dir($dirr)){
if($bb=opendir($dirr)){
while($hh=readdir($bb)){
if($hh!="." && $hh!=".."){
$filehaha=$dirr."/".$hh;
$summm++; // 统计所有对象
if(is_dir($filehaha)){ // 文件夹则加粗显示
echo "<tr><td style=\"font-weight:bold;\">$hh</td>";
$dirmmm++;
}elseif(is_file($filehaha)){
echo "<tr><td>$hh</td>"; // 文件则正常显示
$filemmm++;
}
echo "<td>".ucfirst(filetype($filehaha))."</td>"; // 文件类型
if(is_dir($filehaha)){ // 文件夹大小
$dani=dirsize($filehaha);
if($dani==""){
echo "<td>0 bytes</td>";
}else{
if($dani<1024)
echo "<td>$dani Bytes</td>";
elseif($dani<1024*1024)
echo "<td>".sprintf("%0.2f",$dani/1024)." KB</td>";
elseif($dani<1024*1024*1024)
echo "<td>".sprintf("%0.2f",$dani/1024/1024)." MB</td>";
else
echo "<td>".sprintf("%0.2f",$dani/1024/1024/1024)." GB</td>";
$zongsize+=$dani; // 累加大小
}
}elseif(is_file($filehaha)){
$danini=filesize($filehaha); // 文件大小
if($danini<1024)
echo "<td>$danini Bytes</td>";
elseif($danini<1024*1024)
echo "<td>".sprintf("%0.2f",$danini/1024)." KB</td>";
elseif($danini<1024*1024*1024)
echo "<td>".sprintf("%0.2f",$danini/1024/1024)." MB</td>";
else
echo "<td>".sprintf("%0.2f",$danini/1024/1024/1024)." GB</td>";
$zongsize+=$danini;
}
echo "<td>".date("Y-m-d H:i",filemtime($filehaha))."</td>"; // 打印日期
// 操作选项---------------------------------------------------------------
if(is_dir($filehaha)){ // 文件夹操作
echo "<td><a href='a.php?tijiao=ok&subb=4&del={$hh}&url={$dirr}'> DEL</a>";
echo "<a href='a.php?tijiao=ok&info={$filehaha}'> <font color='#00FFFF'>INTO</font></a></td></tr>";
}elseif(is_file($filehaha)){ // 文件操作
echo "<td><a href='a.php?tijiao=ok&subb=2&del={$hh}&url={$dirr}'> DEL</a>";
// 将判断文件类型进行显示操作按钮--------------------------------------
if(preg_match("/\.(txt|php|asp|log|ini|css|js|htm|html)$/i",$filehaha)){
echo "<a href='a.php?tijiao=ok&edit={$hh}&url={$dirr}'> <font color='#0000FF'>EDIT</font></a></td></tr>";
}elseif(preg_match("/\.(jpeg|gif|ico|png|jpg|bmp)$/i",$filehaha)){
echo "<a href='a.php?tijiao=ok&viw={$hh}&url={$dirr}'> <font color='#FFFF00'>LOOK</font></a></td></tr>";
}else{
echo " <font color='#cccccc'>UNOP</font></td></tr>";
}
}
}
}
}
}
?>
</table>
<!-- +++++++++++++++++++++++++++++++++++文件列表表格END++++++++++++++++++++++++++++++ -->
<!-- +++++++++++++++++++++++++++++++++++状态栏++++++++++++++++++++++++++++++ -->
<div style="width:798px; margin:20px auto 20px; height:40px; border:1px dashed #00f; line-height:50px;">
<span style="
position:relative;
display:block;
color:#fff;
font-size:13px;
text-align:center;
line-height:25px;
font-weight:bold;
width:250px;
height:20px;
background:#9d94ca;
top:-15px; left:20px;">State and File-Directroy Tole sum:</span>
<div style="position:relative;
top:-40px;
width:790px;
text-align:left;
margin:20px auto 0px;
height:40px;
font-weight:bold;
font-size:13px;
color:#0f0;">
<?php // 状态栏判断显示
if($summm==0){ // 判断如果对象总数为零
echo " The directroy is empty! "; // 显示文件夹为空
}else{
echo " Object $summm <font color='white'> | </font> "; // 显示对象总数
if($dirmmm==0) // 显示文件夹总数
echo " Dir No <font color='white'> | </font>";
else
echo " Dir $dirmmm <font color='white'> | </font>";
if($filemmm==0) // 显示文件总数
echo " Dir No <font color='white'> | </font> ";
else
echo " File $filemmm <font color='white'> | </font> ";
if($zongsize<1024){ // 显示总大小
echo " Allsize $zongsize bytes";
}elseif($zongsize<1024*1024){
echo " Allsize ".sprintf("%0.2f",$zongsize/1024)." KB";
}elseif($zongsize<1024*1024*1024){
echo " Allsize ".sprintf("%0.2f",$zongsize/1024/1024)." MB";
}else{
echo " Allsize ".sprintf("%0.2f",$zongsize/1024/1024/1024)." GB";
}
// 显示磁盘剩余空间 以及总容量
echo "<div style=\"float:right; width:280px; height:40px;\">";
echo " Diskfree ".sprintf("%0.2f",disk_free_space($dirr)/1024/1024/1024)." G <font color='white'> | </font>";
echo " Diskspace ".sprintf("%0.2f",disk_total_space($dirr)/1024/1024/1024)." G";
echo "</div>";
}
?>
</div>
<div style="clear:both;"></div>
<!-- +++++++++++++++++++++++++++++++++++状态栏END++++++++++++++++++++++++++++++ -->
<!-- +++++++++++++++++++消息提示++++++++++++++++++++++++++ -->
<center><font color="blue"><?php echo $yest; ?></font></center>
<!-- ++++++++++++++++++++消息提示END++++++++++++++++++++++ -->
<br />
<!-- +++++++++++++++++++++++++++++++++++添加文件或文件夹表格+++++++++++++++++++++++++ -->
<table align="center" border="0" width="500">
<!-- +++++++++++++++添加文件表单域+++++++++++++ -->
<form action="a.php" method="get">
<input type="hidden" name="subb" value="1" />
<input type="hidden" name="url" value="<?php echo $dirr; ?>" />
<tr>
<td width="450" align="right">AddFile: <input type="text" name="add" size="50" value="Please improt filename" /></td>
<td><input type="submit" name="tijiao" value="OK" /></td>
</tr>
</form>
<!-- ++++++++++++++++添加文件表单域END++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++++++++++++++添加文件夹表单域++++++++++++++++++++++++++++++ -->
<form action="a.php" method="get">
<input type="hidden" name="subb" value="3" />
<input type="hidden" name="url" value="<?php echo $dirr; ?>" />
<tr>
<td width="450" align="right">AddDirectory:
<input type="text" name="adddir" size="50" value="Please improt directroyname" /></td>
<td><input type="submit" name="tijiao" value="OK" /></td>
</tr>
</form>
<!-- ++++++++++++++++++++++添加文件夹表单域END+++++++++++++++++++++ -->
</table>
<!-- +++++++++++++++++++++++++++++++++++添加文件或文件夹表格END++++++++++++++++++++++++++++++++++++ -->
<!-- +++++++++++++++++++消息提示++++++++++++++++++++++++++ -->
<center><font color="red"><?php echo $error; ?></font></center>
<br />
<!-- ++++++++++++++++++++消息提示END++++++++++++++++++++++ -->
<!-- ++++++++++++++++++++++++++++++++编辑页面区+++++++++++++++++++++++++++++++++++++ -->
<?php
if($editfile){
$duquwenben=file_get_contents($editfile);
echo "<table width=500 align=center border=1><form action=a.php method=post>";
echo "<tr><td>Editing: $edit </td></tr>";
echo "<tr><td height=300><textarea name=newconten rows=20 cols=100>".htmlspecialchars($duquwenben)."</textarea></td></tr>";
echo "<input type=hidden name=editsave value=$editfile />";
echo "<tr><td align=center><input type=submit name=tijiao value=Save /><input type=reset value=reset /></td></tr>";
echo "</form></table>";
}
/******************查看照片区*******************************/
if($phototo){
echo "<div style=\"weight:798px; min-height:200px; border:1px solid #ccc; text-align:center;\">";
echo "<a style='margin:auto;' href='a.php?tijiao=photo&url=$dirr' title='Click Off'><img src=\"file:///{$phototo}\" /></a>";
echo "<div style=\"weight:798px; min-height:20px; text-align:center; vertical-align:middle;\">$viw</div>";
}
?>
<!-- ++++++++++++++++++++++++++++++++编辑页面区END+++++++++++++++++++++++++++++++++++++ -->
<!-- ++++++++++++++++++++++++++++++++++++++页脚区++++++++++++++++++++++++++++++++++-->
<div style="width:900px;
margin:60px auto;
text-align:center;
line-height:40px;
color:#666;
border-top:2px solid #666;
font-size:15px;
height:40px;
font-weight:bold;">
Power by .net © 2011
</div>
</body>
</html>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++内容 区+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|