PHP文件管理系统

PHP 2012-04-24 PHP文件操作,fopen,opendir

本系统主要是应用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 by qttc.net");

	

	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; ?>" />&nbsp;&nbsp;

	            <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); ?>">&lt;&lt;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}'>&nbsp;DEL</a>";

	                        echo "<a href='a.php?tijiao=ok&info={$filehaha}'>&nbsp;<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}'>&nbsp;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}'>&nbsp;<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}'>&nbsp;<font color='#FFFF00'>LOOK</font></a></td></tr>";    

	                        }else{

	                            echo "&nbsp;<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;">

	        &nbsp;&nbsp;

	        <?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:&nbsp;<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:&nbsp;

	            <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 qttc.net &copy; 2011

	

	    </div>

	    </body>

	</html>

	<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++内容 区+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

	

	 


文字链接:《PHP文件管理系统

文章地址:http://www.qttc.net/20120443.html

除非标注,琼台博客所有博文均为原创,转载请加文字链接注明来源

乳名?小名?昵称?网名?均可

email,放心,我不会给你乱投广告的

想获得回访就把你的站点URL写上(没有留空)

[NOTICE]木要投放广告
[NOTICE]木要骂人,说不该说的话
[NOTICE]自由言论,但要遵纪守法

Comments 0

    Hi,你想第一个做沙发么?