加入收藏 | 设为首页 | 会员中心 | 我要投稿 承德站长网 (https://www.0314zz.com.cn/)- 云开发、边缘计算、数据分析、视频终端、人体识别!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php实现WEB在线文件管理器

发布时间:2022-08-02 13:57:41 所属栏目:PHP教程 来源:互联网
导读:1、效果图 功能包括: 文件夹:创建文件夹、查看文件夹、复制文件夹、剪切文件夹、删除文件夹、重命名文件夹 文件:查看文件、创建文件、编辑文件、复制文件、剪切文件、删除文件、重命名文件、下载文件、上传文件 2、目录结构预览 3、目录操作函数 dir.func
  1、效果图
  功能包括:
 
  文件夹:创建文件夹、查看文件夹、复制文件夹、剪切文件夹、删除文件夹、重命名文件夹
 
  文件:查看文件、创建文件、编辑文件、复制文件、剪切文件、删除文件、重命名文件、下载文件、上传文件
 
 
 
  2、目录结构预览
 
 
  
 
  
 
  3、目录操作函数 dir.func.php
  复制代码
  <?php
 
  // 目录操作函数集合
 
  //打开指定目录
  /**
   * 遍历目录函数,只读取目录中的最外层的内容
   * @param string $path
   * @return array
   */
  function readDirectory($path) {
      $handle = opendir ( $path );
      while ( ($item = readdir ( $handle )) !== false ) {
          //.和..这2个特殊目录
          if ($item != "." && $item != "..") {
              if (is_file ( $path . "/" . $item )) {
                  $arr ['file'] [] = $item;
              }
              if (is_dir ( $path . "/" . $item )) {
                  $arr ['dir'] [] = $item;
              }
          
          }
      }
      closedir ( $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))!==false){
          if($item!="."&&$item!=".."){
              if(is_file($path."/".$item)){
                  $sum+=filesize($path."/".$item);
              }
              if(is_dir($path."/".$item)){
                  $func=__FUNCTION__;
                  $func($path."/".$item);
              }
          }
          
      }
      closedir($handle);
      return $sum;
  }
  //$path="file";
  //echo dirSize($path);
 
  function createFolder($dirname){
      //检测文件夹名称的合法性
      if(checkFilename(basename($dirname))){
          //当前目录下是否存在同名文件夹名称
          if(!file_exists($dirname)){
              if(mkdir($dirname,0777,true)){
                  $mes="文件夹创建成功";
              }else{
                  $mes="文件夹创建失败";
              }
          }else{
              $mes="存在相同文件夹名称";
          }
      }else{
          $mes="非法文件夹名称";
      }
      return $mes;
  }
  /**
   * 重命名文件夹
   * @param string $oldname
   * @param string $newname
   * @return string
   */
  function renameFolder($oldname,$newname){
      //检测文件夹名称的合法性
      if(checkFilename(basename($newname))){
          //检测当前目录下是否存在同名文件夹名称
          if(!file_exists($newname)){
              if(rename($oldname,$newname)){
                  $mes="重命名成功";
              }else{
                  $mes="重命名失败";
              }
          }else{
              $mes="存在同名文件夹";
          }
      }else{
          $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))!==false){
          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);
              }
          }
      }
      closedir($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."/".basename($src))){
                  if(rename($src,$dst."/".basename($src))){
                      $mes="剪切成功";
                  }else{
                      $mes="剪切失败";
                  }
              }else{
                  $mes="存在同名文件夹";
              }
          }else{
              $mes="不是一个文件夹";
          }
      }else{
          $mes="目标文件夹不存在";
      }
      return $mes;
  }
 
  /**
   * 删除文件夹
   * @param string $path
   * @return string
   */
  function delFolder($path){
      $handle=opendir($path);
      while(($item=readdir($handle))!==false){
          if($item!="."&&$item!=".."){
              if(is_file($path."/".$item)){
                  unlink($path."/".$item);
              }
              if(is_dir($path."/".$item)){
                  $func=__FUNCTION__;
                  $func($path."/".$item);
              }
          }
      }
      closedir($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, basename ( $filename ) )) {
          //检测当前目录下是否存在同名文件
          if (! file_exists ( $filename )) {
              //通过touch($filename)来创建
              if (touch ( $filename )) {
                  return "文件创建成功";
              } else {
                  return "文件创建失败";
              }
          } else {
              return "文件已存在,请重命名后创建";
          }
      } else {
          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 "重命名成功";
              }else{
                  return "重命名失败";
              }
          }else{
              return "存在同名文件,请重新命名";
          }
      }else{
          return "非法文件名";
      }
      
  }
 
  /**
   *检测文件名是否合法
   * @param string $filename
   * @return boolean
   */
  function checkFilename($filename){
      $pattern = "/[/,*,<>,?|]/";
      if (preg_match ( $pattern,  $filename )) {
          return false;
      }else{
          return true;
      }
  }
 
  /**
   * 删除文件
   * @param string $filename
   * @return string
   */
  function delFile($filename){
      if(unlink($filename)){
          $mes="文件删除成功";
      }else{
          $mes="文件删除失败";
      }
      return $mes;
  }
 
  /**
   * 下载文件操作
   * @param string $filename
   */
  function downFile($filename){
      header("content-disposition:attachment;filename=".basename($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."/".basename($filename))){
              if(copy($filename,$dstname."/".basename($filename))){
                  $mes="文件复制成功";
              }else{
                  $mes="文件复制失败";
              }
          }else{
              $mes="存在同名文件";
          }
      }else{
          $mes="目标目录不存在";
      }
      return $mes;
  }
 
  function cutFile($filename,$dstname){
      if(file_exists($dstname)){
          if(!file_exists($dstname."/".basename($filename))){
              if(rename($filename,$dstname."/".basename($filename))){
                  $mes="文件剪切成功";
              }else{
                  $mes="文件剪切失败";
              }
          }else{
              $mes="存在同名文件";
          }
      }else{
          $mes="目标目录不存在";
      }
      return $mes;
  }
 

(编辑:承德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读