web文件管理器

Original 2019-10-07 17:46:43 2103
abstract:web文件管理器有1、comm.php 公共提示文件2、config.php //配置文件3、filefunction.php   文件函数库4、oprate.php //操用库文件5、file.php主页面文件file.js文件//显示创建文件,目录及上传文件function creat(obj){ var file=document.getElementsByClassNa

web文件管理器有

1、comm.php 公共提示文件

2、config.php //配置文件

3、filefunction.php   文件函数库

4、oprate.php //操用库文件

5、file.php主页面文件


file.js文件

//显示创建文件,目录及上传文件

function creat(obj){

var file=document.getElementsByClassName(obj)[0];

if(file.style.display=="none"){

file.style.display="block";

return;

}

if(file.style.display=="block"){

file.style.display="none";

return;

}


}


//查看预览图片


layui.use('layer', function(){

   $= layui.jquery;

   var layer = layui.layer;


})

function showView(value,fSrc,flag,str=''){

//value为图片名,fSrc为图片路径,flag为判断图片 文本类型标记,str为文本内容

//判断查看是否为图片

if(flag=="img"){

$('.imgView').html('');

$('.imgView').append("<img>");

$('.imgView img').attr({"src":fSrc,"height":"100%","width":"100%"});


}

//判断是否为TXT文本文件

if(flag=="txt"){

$('.imgView').html('');

$('.imgView').append("<span></span>");

$('.imgView span').text(str);

}

//弹出对话框

$('.imgView').dialog({

height:"400",

width:"800",

position: {my: "center", at: "center", collision: "fit"},

modal:false,

draggable:true,

resizable:true,

title:value,

show:"solid",

hide:"explode"

})

}

//返回上级目录

function goBack(path){

location.href="file.php?path="+path;

}

comm.php 公共提示文件

<?php

//公共提示信息

function messAlert($mes,$path='file'){

        echo "<script>alert('{$mes}');window.location.href='file.php?path={$path}';</script>";

}




config.php //配置文件

<?php

         include "filefunction.php";

         //请求的路径名为空,就设置$path等于'file'目录

         if(!@$_REQUEST['path']){

             $path="file";

         }else{

              $path=$_REQUEST['path'];

         }

         //读文件夹

         $data=readFloder($path);

        if(!$data){

         echo "<script>alert('该目录无文件')</script>";

         }

        //操作配置

         //判断请求操作标志

         @$act=$_REQUEST['act'];

         //接收请求的文件名

         @$filename=$_REQUEST['fileName'];

         //接收请求的文件夹名

         @$flodername=$_REQUEST['floderName'];

filefunction.php   文件函数库

<?php

//创建文件

function createFile($filename){

         if(!file_exists($filename)){

         touch($filename);

         return '文件创建成功';

         }else{

         return '文件已存在';

        }

}

//echo createFile('whyan.txt');

//删除文件

function delFile($filename){

         //查询文件是否存在并查询是否可写

         if(!file_exists($filename)||!is_writable($filename)){

         return '文件不存在或不可写操作,不能删除!';

         }

         if(unlink($filename)){

         return '文件删除成功!';

         }

         return '文件删除失败!';

}

//echo delFile('whyan/true.txt.txt');

//复制文件

function copyFile($filename,$dest){

         if(!file_exists($filename)||!is_writable($filename)){

              return '文件不存在或不可写操作,不能复制!';

         }

         if(!is_dir($dest)){

         mkdir($dest,0777,true);

         }

         $destname=$dest.'/'.basename($filename);

                 // if(file_exists($destname)){

                 // return '<script>alert("文件已存在,是否覆盖?")</script>';

                 // }

         if(copy($filename,$destname)){

             return '文件复制成功!';

         }

         return '文件复制失败!';

}


//echo copyFile('whyan/789.txt','yuhan');

//重命名文件

function renameFile($oldname,$newname){

         if(!file_exists($oldname)||!is_writable($oldname)){

                  return '文件不存在或不可写操作,不能更名!';

         }

         $path=dirname($oldname);

         $destname=$path.'/'.$newname;

         if(file_exists($destname)){

         return '<script>alert("文件已存在,是否覆盖?")</script>';

         }

        if(rename($oldname,$destname)){

              return '文件更名成功!';

         }

         return '更名失败!';

}


//echo renameFile('yuhan/789.txt','999.txt');

//剪切文件

function cutFile($filename,$dest){

             if(!is_file($filename)){

                  return '此文件不能剪切!';

             }

             if(!is_dir($dest)){

             mkdir($dest,0777,true);

             }

             $destname=$dest.'/'.basename($filename);

             if(is_file($destname)){

             return '文件已存在';

         }

        

         if(rename($filename,$destname)){

         return '文件剪切成功';

         }

}


//echo cutFile('whyan/789.txt','yuhan');

//获取文件信息

function getFileInfo($filename){

         if(!is_file($filename) && is_readable($filename)){

              return '文件不可读取信息';

         }

        

         $KB=1024;

         $MB=1024*$KB;

         $GB=1024*$MB;

         $fsize=filesize($filename);

         if($fsize<$KB){

             $fsize=$fsize.'B';

         }elseif($fsize<$MB){

              $fsize=round($fsize/$KB,2).'KB';

         }elseif($fsize<$GB){

              $fsize=round($fsize/$MB,2).'MB';

         }else{

              $fsize=round($fsize/$GB,2).'GB';

         }

        

         return [

         'type'=>filetype($filename),

         'cfile'=>date("Y-m-d H:i:s",filectime($filename)),

         'mfile'=>date("Y-m-d H:i:s",filemtime($filename)),

         'afile'=>date("Y-m-d H:i:s",fileatime($filename)),

         'size'=>$fsize,

         ];

}


//echo '<pre>',var_export(getFileInfo('yuhan/789.txt'));

//读取文件内容

function readFiles($filename){

         if(is_file($filename) && is_readable($filename)){

         return file_get_contents($filename);

    }

    return '文件不可读取!';

}


function readFileArray($filename,$skipLine=false){

         if(is_file($filename) && is_readable($filename)){

                 if($skipLine == true){

                 return file($filename,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

                 } else{

                 return file($filename);

                 }

          }

         return '文件无法读取';

}


//echo '<pre>',var_export(readFileArray('yuhan/789.txt'));

//写入文件内容

function writeFile($filename,$data,$clear=false){

         if(is_file($filename) && is_writable($filename)){

                 if(is_array($data) || is_object($data)){

                     //$data=serialize($data);

                     //$data=json_encode($data);

                             $str='';

                             foreach ($data as $key => $value) {

                             $str.=$key.'=>'.$value.',';

                     }

                 $str=substr($str,0,strlen($str)-1);

                  $str='['.$str.']';

                 }else{

                     $str=$data;

                 }

         //echo $data;

                 if($clear==false){

                          $data=file_get_contents($filename).$str;

                 }

                 if(file_put_contents($filename,$str)){

                 return '文件写入成功!';

                 }

        }

        return '文件写入失败!';

}


//文件下载

function downFile($filename){

         header('Accept-Lenght:'.filesize($filename));

         header('Content-Disposition:attachment;filename='.basename($filename));

         readfile($filename);

}


//downFile('whyan/789.txt');

//

//创建目录

function createFloder($floderName){

         if(!file_exists($floderName)){

                 if(mkdir($floderName,0777,true)){

                 return '创建目录成功';

         }

         }else{

                 return '目录已存在';

         }

}


//echo createFloder('ghost');

//

//删除目录

function delFloder($floderName){

         if(file_exists($floderName)){

         $dir=opendir($floderName);

         while($item=readdir($dir)){

                 if($item!='.' && $item!='..'){

                      if(is_file($floderName.'/'.$item)){

                              unlink($floderName.'/'.$item);

                      }

                  if(is_dir($floderName.'/'.$item)){

                              $fun=__FUNCTION__;

                             $fun($floderName.'/'.$item);

                     }

             }

           // echo $item.'<br>';

         }

             rmdir($floderName);

             closedir($dir);

             return '删除目录成功';

         }

         return '目录不存在'; 

}


//echo delFloder('ghost');

//

//复制目录

function copyFloder($srcFloder,$destFloder){

             if(is_dir($srcFloder)){

             //$destFloder=$destFloder.'/'.$srcFloder;

             if(!file_exists($destFloder)){

                        mkdir($destFloder,0777,true);

             }

             $dir=opendir($srcFloder);

             while($item=readdir($dir)){

                          if($item!='.' && $item!='..'){

                                     if(is_file($srcFloder.'/'.$item)){

                                         copy($srcFloder.'/'.$item,$destFloder.'/'.$item);

                                      }

                         if(is_dir($srcFloder.'/'.$item)){

                                     $fun=__FUNCTION__;

                                     $fun($srcFloder.'/'.$item,$destFloder.'/'.$item);

                                }

             }

             }

             closedir($dir);

             return '复制目录成功';

             }

             return '复制目录失败或不存在';

}


//echo copyFloder('json','upload/json');

//

//目录重命名

function renameFloder($srcFloder,$destFloder){

             if(!is_dir($srcFloder)){

             return '目录不存在!';

             }

             if(is_dir($destFloder)){

             return '重命名的目录存在!';

             }

         if(rename($srcFloder,$destFloder)){

                 return '重命名的目录成功!';

         };

}


//echo renameFloder('js','json');

//

//剪切目录

function cutFloder($srcFloder,$destFloder){

             if(is_dir($srcFloder)){

             if(!file_exists($destFloder)){

             mkdir($destFloder,0777,true);

             }

             $dir=opendir($srcFloder);

             while($item=readdir($dir)){

                      if($item!='.' && $item!='..'){

                             if(is_file($srcFloder.'/'.$item)){

                             rename($srcFloder.'/'.$item,$destFloder.'/'.$item);

                         }

                      if(is_dir($srcFloder.'/'.$item)){

                             $fun=__FUNCTION__;

                             $fun($srcFloder.'/'.$item,$destFloder.'/'.$item);

                 }

             }

             }

             closedir($dir);

             rmdir($srcFloder);

             return '剪切目录成功';

             }

             return '剪切复制目录失败或不存在';

}


//echo cutFloder('json','js/json');

//

//目录读取

function readFloder($floderName){

if(!file_exists($floderName)){

return '文件目录不存在';

}else{

$fItem=[];

$dir=opendir($floderName);

while ($item=readdir($dir)) {

if($item!='.' && $item!='..'){

if(is_file($floderName.'/'.$item)){

$fItem['file'][]=$item;

}

if(is_dir($floderName.'/'.$item)){

$fItem['dir'][]=$item;

}

}

}

closedir($dir);

return $fItem;

}

}

// $item=readFloder('whyan');

// echo '<pre>'.var_export($item,true).'<br>';

// foreach ($item as $key => $value) {

// if($key=='dir'){

// echo '该目录下存在目录';

// }

// if($key=='file'){

// echo '该目录下不存在目录';

// }

// }

// 容量大小转换


function tranSize($fsize){

$KB=1024;

$MB=1024*$KB;

$GB=1024*$MB;

if($fsize<$KB){

$fsize=$fsize.'B';

}elseif($fsize<$MB){

$fsize=round($fsize/$KB,2).'KB';

}elseif($fsize<$GB){

$fsize=round($fsize/$MB,2).'MB';

}else{

$fsize=round($fsize/$GB,2).'GB';

}

return $fsize;

}


//目录大小


function floderSize($floderName){

$sum=0;

global $sum;

if(!file_exists($floderName)){

return '目录不存在!';

}

$dir=opendir($floderName);


while($item=readdir($dir)){

if($item!='.' && $item!='..'){

if(is_file($floderName.'/'.$item)){

$sum+=filesize($floderName.'/'.$item);

}

if(is_dir($floderName.'/'.$item)){

$fun=__FUNCTION__;

$fun($floderName.'/'.$item);

}

}

//var_dump ($item);

}

closedir($dir);

return tranSize($sum);

}


//echo floderSize('upload');

//获取目录信息

function getFloderInfo($floderName){

if(file_exists($floderName)){

return [

'ctime'=>date("Y-m-d H:i:s",filectime($floderName)),

'mtime'=>date("Y-m-d H:i:s",filemtime($floderName)),

'atime'=>date("Y-m-d H:i:s",fileatime($floderName)),

];

}

return '文件夹不存在';

}

//上传文件

function uploadfile($fileinfo,$uploadpath,$allowExt=['png','jpg','jpeg','gif','txt','html'],$maxsize=2000000,$reslut=''){

switch($fileinfo['error']){

case 0 :

//获取文件后缀

$ext=strtolower(pathinfo($fileinfo['name'],PATHINFO_EXTENSION));

//判断后缀格式

if(!in_array($ext,$allowExt)){

return '文件类型非法上传';

}

//判断文件是否超过容量

if($fileinfo['size']>$maxsize){

return '文件超过容量';

}

//上传目录是否存在

if(!is_dir($uploadpath)){

mkdir($uploadpath,0777,true);

}

//指定上传文件名

$newfile=md5(uniqid(time(true),true)).'.'.$ext;

//上传文件是否为POST方式

if(!is_uploaded_file($fileinfo['tmp_name'])){

return '文件非法上传';

}

//上传文件

if(!move_uploaded_file($fileinfo['tmp_name'], $uploadpath.'/'.$newfile)){

return '文件上传失败!';

}

break;

case 1 :

$reslut='上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。';

break;

case 2 :

$reslut='上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。';

break;

case 3 :

$reslut='文件只有部分被上传。';

break;

case 4 :

$reslut='没有文件被上传。';

break;

case 6 :

$reslut='找不到临时文件夹。';

break;

case 7 :

$reslut='文件写入失败。';

break;

default :

$reslut='不知明错误。';

}

if(!$reslut==''){

return $reslut;

}


return '文件上传成功';

}


oprate.php //操用库文件

<?php

//创建文件

if($act=="创建文件"){

$mess=createFile($path.'/'.$filename);

messAlert($mess,$path);

}

//创建文件夹

if($act=="创建文件夹"){

$mess=createFloder($path.'/'.$flodername);

messAlert($mess,$path);

}

//上传文件

if($act=="上传文件"){

$mess=uploadfile($_FILES['uploadFile'],$path);

messAlert($mess,$path);

}

//修改内容

if($act=='editContent'){

$content=file_get_contents($filename);

//echo $content;

$str='<form action="file.php?act=doEdit" method="post">

<textarea cols="100" rows="5" name="content">'

.$content.

'</textarea><br>

<input type="hidden" name="fileName" value="'.$filename.'">

<input type="hidden" name="path" value="'.$path.'">

<input type="submit" value="修改内容">

  </form>';

echo $str;

}

//执行修改内容

if($act=='doEdit'){

$content=$_REQUEST['content'];

$mess=writeFile($filename,$content);

messAlert($mess,dirname($filename));

}

//重命名

if($act=='rename'){

$str='<form action="file.php?act=doRename" method="post">

请输入文件名称:<input type="text" name="newname">

<input type="hidden" name="fileName" value="'.$filename.'">

<input type="hidden" name="path" value="'.$path.'">

<input type="submit" value="重命名">

  </form>';

echo $str;

}

//执行重命名

if($act=='doRename'){

$newname=$_REQUEST['newname'];

//echo $path;


$mess=renameFile($filename,$newname);

messAlert($mess,dirname($filename));

}

//复制文件

if($act=='copyname'){

$str='<form action="file.php?act=doCopyname" method="post">

请输入复制名称:<input type="text" name="copyName">

<input type="hidden" name="fileName" value="'.$filename.'">

<input type="hidden" name="path" value="'.$path.'">

<input type="submit" value="复制文件">

  </form>';

echo $str;

}

//执行复制文件

if($act=='doCopyname'){

$copyname=$_REQUEST['copyName'];

$dir=dirname($filename);

$dir=$dir.'/'.$copyname;

$mess=copyFile($filename,$dir);

messAlert($mess,dirname($filename));

}

//剪切文件

if($act=='cutname'){

$str='<form action="file.php?act=doCutname" method="post">

请输入复制名称:<input type="text" name="cutName">

<input type="hidden" name="fileName" value="'.$filename.'">

<input type="hidden" name="path" value="'.$path.'">

<input type="submit" value="剪切文件">

  </form>';

echo $str;

}

//执行剪切文件

if($act=='doCutname'){

$cutname=$_REQUEST['cutName'];

$dir=dirname($filename);

$dir=$dir.'/'.$cutname;

$mess=cutFile($filename,$dir);

messAlert($mess,dirname($filename));

}

//执行下载文件

if($act=='downname'){

downFile($filename);

}

//删除文件

if($act=='delname'){

echo "<script> if(window.confirm('你确定删除吗?')){location.href='file.php?act=doDelname&fileName={$filename}'}</script>";

}

//执行删除文件

if($act=='doDelname'){

$mess=delFile($filename);

messAlert($mess,dirname($filename));

}

//重命名文件夹

if($act=='renamefloder'){

$str='<form action="file.php?act=doRenamefloder" method="post">

请重命名文件夹名称:<input type="text" name="renameFloder">

<input type="hidden" name="floderName" value="'.$flodername.'">

<input type="submit" value="重命名">

  </form>';

echo $str;

}

//执行重命名文件夹

if($act=='doRenamefloder'){

$renameFloder=$_REQUEST['renameFloder'];

$renameFloder=dirname($flodername).'/'.$renameFloder;

$mess=renameFloder($flodername,$renameFloder);

messAlert($mess,dirname($flodername));

}

//复制文件夹

if($act=='copyfloder'){

$str='<form action="file.php?act=doCopyfloder" method="post">

请输入复制文件夹名称:<input type="text" name="copyFloder">

<input type="hidden" name="floderName" value="'.$flodername.'">

<input type="submit" value="复制目录">

</form>';

echo $str;

}

//执行复制文件夹

if($act=='doCopyfloder'){

$copyfloder=$_REQUEST['copyFloder'];

$copyfloder=dirname($flodername).'/'.$copyfloder;

$mess=copyFloder($flodername,$copyfloder);

messAlert($mess,dirname($flodername));

}

//剪切文件夹

if($act=='cutfloder'){

$str='<form action="file.php?act=doCutfloder" method="post">

请输入复制文件夹名称:<input type="text" name="cutFloder">

<input type="hidden" name="floderName" value="'.$flodername.'">

<input type="submit" value="剪切目录">

</form>';

echo $str;

}

//执行剪切文件夹

if($act=='doCutfloder'){

$cutfloder=$_REQUEST['cutFloder'];

$cutfloder=dirname($flodername).'/'.$cutfloder.'/'.basename($flodername);

$mess=cutFloder($flodername,$cutfloder);

messAlert($mess,dirname($flodername));

}

//删除文件夹

if($act=='delfloder'){

echo "<script>window.confirm('你确定删除吗?') ? location.href='file.php?act=doDelfloder&floderName=".$flodername."' : location.href='file.php?path=".$path."'</script>";

}

//执行删除文件夹

if($act=='doDelfloder'){

$mess=delFloder($flodername);

messAlert($mess,dirname($flodername));

}







file.php //主文件

<!DOCTYPE html>

<?php

//设置时区

ini_set('date.timezone','Asia/Shanghai');

//加载配置文件

include "config.php";

//加载公共提示文件

include "comm.php";

//加载操作文件

include "oprate.php";

?>

<html>

<head>

<meta charset="utf-8">

<title>web文件管理系统</title>

<link rel="stylesheet" type="text/css" href="layui/css/layui.css">

<link rel="stylesheet" ty

Correcting teacher:查无此人Correction time:2019-10-12 16:27:41
Teacher's summary:完成的不错。目录操作,了解就行了。 有很多写好的功能,可以直接使用。因为写好后,很少改动。

Release Notes

Popular Entries