首页 > 作文

php实现WEB在线文件管理器

更新时间:2023-04-08 17:07:17 阅读: 评论:0

1、效果图

功能包括:

文件夹:创建文件夹、查看文件夹、复制文件夹、剪切文件夹、删除文件夹、重命名文件夹

文件:查看文件、创建文件、编辑文件、复制文件、剪切文件、删除文件、重命名文件、下载文件、上传文件

2、目录结构预览

3、目录操作函数 dir.func.php

<?php // 目录操作函数集合//打开指定目录/** * 遍历目录函数,只读取目录中的最外层的内容 * @param string $path * @return array */function readdirectory($path) {    $handle = opendir ( $path );    while ( ($item = readdir ( $handle )) !=意开头的四字成语= fal ) {        //.和..这2个特殊目录        if ($item != "." && $item != "..") {            if (is_file ( $path . "/" . $item )) {                $arr ['file'] [] = $item;            }            if (is_dir ( $path . "/" . $item )) {                $arr ['dir'] [] = $item;            }                }    }    clodir ( $handle );    return $arr;}//$path="file";//print_r(readdirectory($path));/** * 得到文件夹大小 * @param string $path * @return int  */function dirsize($path){    $sum=0;    global $sum;    $handle=opendir($path);    while(($item=readdir($handle))!==fal){        if($item!="."&&$item!=".."){            if(is_file($path."/".$item)){                $sum+=filesize($path."/".$item);            }            if(is_dir($path."/".$item)){                $func=__function__;                $func($path."/".$item);            }        }            }    clodir($handle);    return $sum;}//$path="file";//echo dirsize($path);function createfolder($dirname){    //检测文件夹名称的合法性    if(checkfilename(baname($dirname))){        //当前目录下是否存在同名文件夹名称        if(!file_exists($dirname)){            if(mkdir($dirname,0777,true)){                $mes="文件夹创建成功";            }el{                $mes="文件夹创建失败";            }        }el{            $mes="存在相同文件夹名称";        }    }el{        $mes="非法文件夹名称";    }    return $mes;}/** * 重命名文件夹 * @param string $oldname * @param string $newname * @return string */function renamefolder($oldname,$newname){    //检测文件夹名称的合法性    if(checkfilename(baname($newname))){        //检测当前目录下是否存在同名文件夹名称        if(!file_exists($newname)){            if(rename($oldname,$newname)){                $mes="重命名成功";            }el{                $mes="重命名失败";            }        }el{            $mes="存在同名文件夹";        }    }el{        $mes="非法文件夹名称";    }    return $mes;}function copyfolder($src,$dst){    //echo $src,"---",$dst."----";    if(!file_exists($dst)){        mkdir($dst,0777,true);    }    $handle=opendir($src);    while(($item=readdir($handle))!==fal){        if($item!="."&&$item!=".."){            if(is_file($src."/".$item)){                copy($src."/".$item,$dst."/".$item);            }            if(is_dir($src."/".$item)){                $func=__function__;                $func($src."/".$item,$dst."/".$item);            }        }    }    clodir($handle);    return "复制成功";    }/** * 剪切文件夹 * @param string $src * @param string $dst * @return string */function cutfolder($src,$dst){    //echo $src,"--",$dst;    if(file_exists($dst)){        if(is_dir($dst)){            if(!file_exists($dst."/".baname($src))){                if(rename($src,$dst."/".baname($src))){                    $mes="剪切成功";                }el{                    $mes="剪切失败";    可逆性            }            }el{                $mes="存在同名文件夹";            }        }el{            $mes="不是一个文件夹";        }    }el{        $mes="目标文件夹不存在";    }    return $mes;}/** * 删除文件夹 * @param string $path * @return string */function delfolder($path){    $handle=opendir($path);    while(($item=readdir($handle))!==fal){        if($item!="."&&$item!=".."){            if(is_file($path."/".$item)){                unlink($path."/".$item);            }            if(is_dir($path."/".$item)){                $func=__function__;                $func($path."/".$item);            }        }    }    clodir($handle);    rmdir($path);    return "文件夹删除成功";}

4、文件操作函数 file.func.php

<?php // 文件操作函数集合//bytes/kb/mb/gb/tb/eb/** * 转换字节大小 * @param number $size * @return number */function transbyte($size) {    $arr = array ("b", "kb", "mb", "gb", "tb", "eb" );    $i = 0;    while ( $size >= 1024 ) {        $size /= 1024;        $i ++;    }    return round ( $size, 2 ) . $arr [$i];}/** * 创建文件 * @param string $filename * @return string */function createfile($filename) {    //file/1.txt    //验证文件名的合法性,是否包含/,*,<>,?,|    $pattern = "/[\/,\*,<>,\?\|]/";    if (! preg_match ( $pattern, baname ( $filename ) )) {        //检测当前目录下是否存在同名文件        if (! file_exists ( $filename )) {            //通过touch($filename)来创建            if (touch ( $filename )) {                return "文件创建成功烦的拼音";            } el {                return "文件创建失败";            }        } el {            return "文件已存在,请重命名后创建";        }    } el {        return "非法文件名";    }}/** * 重命名文件 * @param string $oldname * @param string $newname * @return string */function renamefile($oldname,$newname){//    echo $oldname,$newname;//验证文件名是否合法    if(checkfilename($newname)){        //检测当前目录下是否存在同名文件        $path=dirname($oldname);        if(!file_exists($path."/".$newname)){            //进行重命名            if(rename($oldname,$path."/".$newname)){                return "重命名成功";            }el{                return "重命名失败";            }        }el{            return "存在同名文件,请重新命名";        }    }el{        return "非法文件名";    }    }/** *检测文件名是否合法 * @param string $filename * @return boolean */function checkfilename($filename){    $pattern = "/[\/,\*,<>,\?\|]/";    if (preg_match ( $pattern,  $filename )) {        return fal;    }el{        return true;    }}/** * 删除文件 * @param string $filename * @return string */function delfile($filename){    if(unlink($filename)){        $mes="文件删除成功";    }el{        $mes="文件删除失败";    }    return $mes;}/** * 下载文件操作 * @param string $filename */function downfile($filename){    header("content-disposition:attachment;filename=".baname($filename));    header("content-length:".filesize($filename));    readfile($filename);}/** * 复制文件 * @param string $filename * @param string $dstname * @return string */function copyfile($filename,$dstname){    if(file_exists($dstname)){        if(!file_exists($dstname."/".baname($filename))){            if(copy($filename,$dstname."/".baname($filename))){                $mes="文件复制成功";            }el{                $mes="文件复制失败";            }        }el{            $mes="存在同名文件";        }    }el{        $mes="目标目录不存在";    }    return $mes;}function cutfile($filename,$dstname){    if(file_exists($dstname)){        if(!file_exists($dstname."/".baname($filename))){            if(rename($filename,$dstname."/".baname($filename))){                $mes="文件剪切成功";            }el{                $mes="文件剪切失败";            }        }el{            $mes="存在同名文件";        }    }el{        $mes="目标目录不存在";    }    return $mes;}/** * 上传文件 * @param array $fileinfo * @param string $path * @param array $allowext * @param int $maxsize * @return string */function uploadfile($fileinfo,$path,$allowext=array("gif","jpeg","jpg","png","txt"),$maxsize=10485760){    //判断错误号    if($fileinfo['error']==upload_err_ok){        //文件是否是通过http post方式上传上来的        if(is_uploaded_file($fileinfo['tmp_name'])){            //上传文件的文件名,只允许上传jpeg|jpg、png、gif、txt的文件            //$allowext=array("gif","jpeg","jpg","png","txt");            $ext=getext($fileinfo['name']);            $uniqid=getuniqidname();            $destination=$path."/".pathinfo($fileinfo['name'],pathinfo_filename)."_".$uniqid.".".$ext;            if(in_array($ext,$allowext)){                if($fileinfo['size']<=$maxsize){                    if(move_uploaded_file($fileinfo['tmp_name'], $destination)){                        $mes="文件上传成功";                    }el{                        $mes="文件移动失败";                    }                }el{                    $mes="文件过大";                }            }el{                $mes="非法文件类型";            }        }el{            $mes="文件不是通过http post方式上传上来的";        }    }el{        switch($fileinfo['error']){            ca 1:                $mes="超过了配置文件的大小";                break;            ca 2:                $mes="超过了表单允许接收数据的大小";                break;            ca 3:                $mes="文件部分被上传";                break;            ca 4:                $mes="没有文件被上传";                break;        }    }        return $mes;    }

5、公共函数 common.func.php

<?php // 公共函数集合/** * 提示操作信息的,并且跳转 * @param string $mes * @param string $url */function alertmes($mes,$url){    echo "<script type='text/javascript'>alert('{$mes}');location.href='{$url}';</script>";}/** * 截取文件扩展名 * @param string $filename * @return string */function getext($filename){    return strtolower(pathinfo($filename,pathinfo_extension));}/** * 产生唯一名称 * @param int $length * @return string */function getuniqidname($length=10){    return substr(md5(uniqid(microtime(true),true)),0,$length);}

6、主文件 index.php

<?php require_once 'dir.func.php';require_once 'file.func.php';require_once 'common.func.php';$path="file";$path=$_request['path']?$_request['path']:$path;$act=$_request['act'];$filename=$_request['filename'];$dirname=$_request['dirname'];$info=readdirectory($path);if(!$info){echo "<script>alert('没有文件或目录!!!');location.href='index.php';</script>";}//print_r($info);$redirect="index.php?path={$path}";if($act=="创建文件"){//创建文件//    echo $path,"--";//    echo $filename;$mes=createfile($path."/".$filename);alertmes($mes,$redirect);}elif($act=="showcontent"){//查看文件内容$content=file_get_contents($filename);//echo "<textarea readonly='readonly' cols='100' rows='10'>{$content}</textarea>";//高亮显示php代码//高亮显示字符串中的php代码if(strlen($content)){$newcontent=highlight_string($content,true);//高亮显示文件中的php代码//highlight_file($filename);$str=<<<eof<table width='100%' bgcolor='pink' cellpadding='5' cellspacing="0" ><tr><td>{$newcontent}</td></tr></table>eof;echo $str;}el{alertmes("文件没有内容,请编辑再查看!",$redirect);}}elif($act=="editcontent"){//修改文件内容//echo "编辑文件";$content=file_get_contents($filename);//echo $content;$str=<<<eof<form action='index.php?act=doedit' method='post'> <textarea name='content' cols='190' rows='10'>{$content}</textarea><br/><input type='hidden' name='filename' value='{$filename}'/><input type="hidden" name="path" value="{$path}" /><input type="submit" value="修改文件内容"/></form>eof;echo $str;}elif($act=="doedit"){//修改文件内容的操作$content=$_request['content'];//echo $content;if(file_put_contents($filename,$content)){$mes="文件修改成功";}el{$mes="文件修改失败";}alertmes($mes,$redirect);}elif($act=="renamefile"){//完成重命名$str=<<<eof<form action="index.php?act=dorename" method="post"> 请填写新文件名:<input type="text" name="newname" placeholder="重命名"/><input type='hidden' name='filename' value='{$filename}' /><input type="submit" value="重命名"/></form>eof;echo $str;}elif($act=="dorename"){//实现重命名的操做$newname=$_request['newname'];$mes=renamefile($filename,$newname);alertmes($mes,$redirect);}elif($act=="delfile"){$mes=delfile($filename);alertmes($mes,$redirect);}elif($act=="downfile"){//完成下载的操作$mes=downfile($filename);}elif($act=="创建文件夹"){$mes=createfolder($path."/".$dirname);alertmes($mes,$redirect);}elif($act=="renamefolder"){$str=<<<eof<form action="index.php?act=dorenamefolder" method="post"> 请填写新文件夹名称:<input type="text" name="newname" placeholder="重命名"/><input type="hidden" name="path" value="{$path}" /><input type='hidden' name='dirname' value='{$dirname}' /><input type="submit" value="重命名"/></form>eof;echo $str;}elif($act=="dorenamefolder"){$newname=$_request['newname'];//echo $newname,"-",$dirname,"-",$path;$mes=renamefolder($dirname,$path."/".$newname);alertmes($mes,$redirect);}elif($act=="copyfolder"){$str=<<<eof<form action="index.php?act=docopyfolder" method="post"> 将文件夹复制到:<input type="text" name="dstname" placeholder="将文件夹复制到"/><input type="hidden" name="path" value="{$path}" /><input type='hidden' name='dirname' value='{$dirname}' /><input type="submit" value="复制文件夹"/></form>eof;echo $str;}elif($act=="docopyfolder"){$dstname=$_request['dstname'];$mes=copyfolder($dirname,$path."/".$dstname."/".baname($dirname));alertmes($mes,$redirect);}elif($act=="cutfolder"){$str=<<<eof<form action="index.php?act=docutfolder" method="post"> 将文件夹剪切到:<input type="text" name="dstname" placeholder="将文件剪切到"/><input type="hidden" name="path" value="{$path}" /><input type='hidden' name='dirname' value='{$dirname}' /><input type="submit" value="剪切文件夹"/></form>eof;echo $str;}elif($act=="docutfolder"){//echo "文件夹被剪切了";$dstname=$_request['dstname'];$mes=cutfolder($dirname,$path."/".$dstname);alertmes($mes,$redirect);}elif($act=="delfolder"){//完成删除文件夹的操作//echo "文件夹被删除了";$mes=delfolder($dirname);alertmes($mes,$redirect);}elif($act=="copyfile"){$str=<<<eof<form action="index.php?act=docopyfile" method="post"> 将文件复制到:<input type="text" name="dstname" placeholder="将文件复制到"/><input type="hidden" name="path" value="{$path}" /><input type='hidden' name='filename' value='{$filename}' /><input type="submit" value="复制文件"/></form>eof;echo $str;}elif($act=="docopyfile"){$dstname=$_request['dstname'];$mes=copyfile($filename,$path."/".$dstname);alertmes($mes,$redirect);}elif($act=="cutfile"){$str=<<<eof<form action="index.php?act=docutfile" method="post"> 将文件剪切到:<input type="text" name="dstname" placeholder="将文件剪切到"/><input type="hidden" name="path" value="{$path}" /><input type='hidden' name='filename' value='{$filename}' /><input type="submit" value="剪切文件"/></form>eof;echo $str;}elif($act=="docutfile"){$dstname=$_request['dstname'];$mes=cutfile($filename,$path."/".$dstname);alertmes($mes,$redirect);}elif($act=="上传文件"){//print_r($_files);$fileinfo=$_files['myfile'];$mes=uploadfile($fileinfo,$path);alertmes($mes, $redirect);}?><!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="content-type" content="text/html; chart=utf-8" /><title>inrt title here</title><link rel="stylesheet" href="cikonss.css" /><script src="jquery-ui/js/jquery-1.10.2.js"></script><script src="jquery-ui/js/jquery-ui-1.10.4.custom.js"></script><script src="jquery-ui/js/jquery-ui-1.10.4.custom.min.js"></script><link rel="stylesheet" href="jquery-ui/css/ui-lightness/jquery-ui-1.10.4.custom.css"  type="text/css"/><style type="text/css">body,p,div,ul,ol,table,dl,dd,dt{margin:0;padding: 0;}a{text-decoration: none;}ul,li{list-style: none;float: left;}#top{width:100%;height:48px;margin:0 auto;background: #e2e2e2;}#navi a{display: block;width:48px;height: 48px;}#main{margin:0 auto;border:2px solid #abcdef;}.small{width:25px;height:25px;border:0;}</style><script type="text/javascript">function show(dis){document.getelementbyid(dis).style.display="block";}function delfile(filename,path){if(window.confirm("您确定要删除嘛?删除之后无法恢复哟!!!")){location.href="index.php?act=delfile&filename="+filename+"&path="+path;}}function delfolder(dirname,path){if(window.confirm("您确定要删除嘛?删除之后无法恢复哟!!!")){location.href="index.php?act=delfolder&dirname="+dirname+"&path="+path;}}function showdetail(t,filename){$("#showimg").attr("src",filename);$("#showdetail").dialog({height:"auto",width: "auto",position: {my: "center", at: "center",  collision:"fit"},modal:fal,//是否模式对话框draggable:true,//是否允许拖拽resizable:true,//是否允许拖动title:t,//对话框标题show:"slide",hide:"explode"});}function goback($back){location.href="index.php?path="+$back;}</script></head><body><div id="showdetail"  style="display:none"><img src="" id="showimg" alt=""/></div><h1>在线文件管理器</h1><div id="top"><ul id="navi"><li><a href="index.php" title="主目录"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-home"></span></span></a></li><li><a href="#"  onclick="show('createfile')" title="新建文件" ><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-file"></span></span></a></li><li><a href="#"  onclick="show('createfolder')" title="新建文件夹"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-folder"></span></span></a></li><li><a href="#" onclick="show('uploadfile')"title="上传文件"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-upload"></span></span></a></li><?php $back=($path=="file")?"file":dirname($path);?><li><a href="#" title="返回上级目录" onclick="goback('<?php echo $back;?>')"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-arrowleft"></span></span></a></li></ul></div><form action="index.php" method="post" enctype="multipart/form-data"><table width="100%" border="1" cellpadding="5" cellspacing="0" bgcolor="#abcdef" align="center"><tr id="createfolder"  style="display:none;"><td>请输入文件夹名称</td><td ><input type="text" name="dirname" /><input type="hidden" name="path"  value="<?php echo $path;?>"/><input type="submit"  name="act"  value="创建文件夹"/></td></tr><tr id="createfile"  style="display:none;"><td>请输入文件名称</td><td ><input type="text"  name="filename" /><input type="hidden" name="path" value="<?php echo $path;?>"/><input type="submit"  name="act" value="创建文件" />    </td></tr><tr id="uploadfile" style="display:none;"><td >请选择要上传的文件</td><td ><input type="file" name="myfile" /><input type="submit" name="act" value="上传文件" />    </td></tr><tr><td>编号</td><td>名称</td><td>类型</td><td>大小</td><td>可读</td><td>可写</td><td>可执行</td><td>创建时间</td><td>修改时间</td><td>访问时间</td><td>操作</td></tr><?php if($info['file']){$i=1;foreach($info['file'] as $val){$p=$path."/".$val;?><tr><td><?php echo $i;?></td><td><?php echo $val;?></td><td><?php $src=filetype($p)=="file"?"file_ico.png":"folder_ico.png";?><img src="images/<?php echo $src;?>" alt=""  title="文件"/></td><td><?php echo transbyte(filesize($p));?></td><td><?php $src=is_readable($p)?"correct.png":"error.png";?><img class="small" src="images/<?php echo $src;?>" alt=""/></td><td><?php $src=is_writable($p)?"correct.png":"error.png";?><img class="small" src="images/<?php echo $src;?>" alt=""/></td><td><?php $src=is_executable($p)?"correct.png":"error.png";?><img class="small" src="images/<?php echo $src;?>" alt=""/></td><td><?php echo date("y-m-d h:i:s",filectime($p));?></td><td><?php echo date("y-m-d h:i:s",filemtime($p));?></td><td><?php echo date("y-m-d h:i:s",fileatime($p));?></td><td><?php //得到文件扩展名$ext=strtolower(end(explode(".",$val)));$imageext=array("gif","jpg","jpeg","png");if(in_array($ext,$imageext)){?>    <a href="#"  onclick="showdetail('<?php echo $val;?>','<?php echo $p;?>')"><img class="small" src="images/show.png"  alt="" title="查看"/></a>|<?php }el{?><a href="index.php?act=showcontent&path=<?php echo $path天津师范大学排名;?>&filename=<?php echo $p;?>" ><img class="small" src="images/show.png"  alt="" title="查看"/></a>|<?php }?><a href="index.php?act=editcontent&path=<?php echo $path;?>&filename=<?php echo $p;?>"><img class="small" src="images/edit.png"  alt="" title="修改"/></a>|<a href="index.php?act=renamefile&path=<?php echo $path;?>&filename=<?php echo $p;?>"><img class="small" src="images/rename.png"  alt="" title="重命名"/></a>|<a href="index.php?act=copyfile&path=<?php echo $path;?>&filename=<?php echo $p;?>"><img class="small" src="images/copy.png"  alt="" title="复制"/></a>|<a href="index.php?act=cutfile&path=<?php echo $path;?>&filename=<?php echo $p;?>"><img class="small" src="images/cut.png"  alt="" title="剪切"/></a>|<a href="#"  onclick马的成语大全="delfile('<?php echo $p;?>','<?php echo $path;?>')"><img class="small" src="images/delete.png"  alt="" title="删除"/></a>|<a href="index.php?act=downfile&path=<?php echo $path;?>&filename=<?php echo $p;?>"><img class="small"  src="images/download.png"  alt="" title="下载"/></a></td>        </tr><?php $i++;}}?><!-- 读取目录的操作--><?php if($info['dir']){$i=$i==null?1:$i;foreach($info['dir'] as $val){$p=$path."/".$val;?><tr><td><?php echo $i;?></td><td><?php echo $val;?></td><td><?php $src=filetype($p)=="file"?"file_ico.png":"folder_ico.png";?><img src="images/<?php echo $src;?>" alt=""  title="文件"/></td><td><?php  $sum=0; echo transbyte(dirsize($p));?></td><td><?php $src=is_readable($p)?"correct.png":"error.png";?><img class="small" src="images/<?php echo $src;?>" alt=""/></td><td><?php $src=is_writable($p)?"correct.png":"error.png";?><img class="small" src="images/<?php echo $src;?>" alt=""/></td><td><?php $src=is_executable($p)?"correct.png":"error.png";?><img class="small" src="images/<?php echo $src;?>" alt=""/></td><td><?php echo date("y-m-d h:i:s",filectime($p));?></td><td><?php echo date("y-m-d h:i:s",filemtime($p));?></td><td><?php echo date("y-m-d h:i:s",fileatime($p));?></td><td><a href="index.php?path=<?php echo $p;?>" ><img class="small" src="images/show.png"  alt="" title="查看"/></a>|<a href="index.php?act=renamefolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>"><img class="small" src="images/rename.png"  alt="" title="重命名"/></a>|<a href="index.php?act=copyfolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>"><img class="small" src="images/copy.png"  alt="" title="复制"/></a>|<a href="index.php?act=cutfolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>"><img class="small" src="images/cut.png"  alt="" title="剪切"/></a>|<a href="#"  onclick="delfolder('<?php echo $p;?>','<?php echo $path;?>')"><img class="small" src="images/delete.png"  alt="" title="删除"/></a>|</td>        </tr><?php $i++;}}?></table></form></body></html>

缺点:php混编

本文发布于:2023-04-08 17:07:13,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/ef0934f3ad9b14d7d5d5cd20f3b1cc67.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php实现WEB在线文件管理器.doc

本文 PDF 下载地址:php实现WEB在线文件管理器.pdf

标签:文件   文件夹   重命名   名称
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图