问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用PHP做一个网上文件档案管理系统!

发布网友 发布时间:2022-04-27 10:55

我来回答

7个回答

懂视网 时间:2022-04-29 13:53

效果图

<?php
//读取管理项目,并且展示
require_once 'lib/dir.func.php';
require_once 'lib/file.func.php';
date_default_timezone_set("PRC");
error_reporting(E_ALL&~E_NOTICE);
define('WEBROOT','webRoot');
$path=$_REQUEST['path']?$_REQUEST['path']:WEBROOT;
$act=$_REQUEST['act']?$_REQUEST['act']:'';
$dirName=$_REQUEST['dirName']?$_REQUEST['dirName']:'';
$fileName=$_REQUEST['fileName']?$_REQUEST['fileName']:'';
$info=read_directory($path);
// print_r($info);exit;
if(!is_array($info)){
 exit("<script>
 alert('读取失败');
 location.href='index.php';
 </script>");
}
//根据不同请求完成不同操作
switch($act){
 case 'createDir':
 // echo $dirName;exit;
 $res=create_dir($path.DIRECTORY_SEPARATOR.$dirName);
 if($res===true){
 $result['msg']=basename($dirName).'创建成功';
 $result['icon']=1;
 }else{
 $result['msg']=$res;
 $result['icon']=2;
 }
 exit(json_encode($result));
 break;
 case 'renameDir':
 $newName=$path.DIRECTORY_SEPARATOR.$dirName;
 $res=rename_dir($fileName,$newName);
 if($res===true){
 $result['msg']=$fileName.'重命名成功';
 $result['icon']=1;
 }else{
 $result['msg']=$res;
 $result['icon']=2;
 }
 exit(json_encode($result));
 break;
 case 'delDir':
 $res=del_dir($fileName);
 if($res===true){
 $result['msg']=basename($fileName).'删除成功';
 $result['icon']=1;
 }else{
 $result['msg']=$res;
 $result['icon']=2;
 }
 exit(json_encode($result));
 break;
 //文件部分
 case 'createFile':
 $res=create_file($path.DIRECTORY_SEPARATOR.$fileName);
 if($res===true){
 $result['msg']=basename($fileName).'文件新建成功';
 $result['icon']=1;
 }else{
 $result['msg']=$res;
 $result['icon']=2;
 }
 exit(json_encode($result));
 break;
 case 'showContents':
 $res=show_contents($fileName);
 exit($res);
 break;
}?><!DOCTYPE html><html lang="zh-cn">
 <head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <title>WEB在线文件管理器</title>
 <!-- Bootstrap -->
 <link href="css/bootstrap.min.css" rel="stylesheet">

 <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
 <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
 <!--[if lt IE 9]>
 <script src="http://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
 <script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
 <![endif]-->
 </head>
 <body>
 <p class="container">
 <p class="row clearfix">
  <p class="col-md-12 column">
  <nav class="navbar navbar-default" role="navigation">
   <p class="navbar-header">
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">切换导航</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button> <a class="navbar-brand" href="index.php"><span class="glyphicon glyphicon-home"></span>首页</a>
   </p>

   <p class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
   <ul class="nav navbar-nav">
    <li class="active">
    <a href="javascript:void(0)" class='createDir' data-url="index.php?act=createDir&path=<?php echo $path;?>"><span class="glyphicon glyphicon-folder-open"></span>新建目录</a>
    </li>
    <li>
   <a href="javascript:void(0)" class="createFile" data-url="index.php?act=createFile&path=<?php echo $path;?>"><span class="glyphicon glyphicon-file"></span>新建文件</a>
    </li>
  <li>
    <a href="#"><span class="glyphicon glyphicon-upload"></span>上传文件</a>
    </li>
  <li>
    <a href="#"><span class="glyphicon glyphicon-info-sign"></span>系统信息</a>
    </li>
    </ul>
    </li>
   </ul>
   <form class="navbar-form navbar-left" role="search">
    <p class="form-group">
    <input type="text" class="form-control" />
    </p> <button type="submit" class="btn btn-default">搜索</button>
   </form>
   </p>

  </nav>
  <p class="jumbotron nofollow">
   <h1>
   WEB在线文件管理器   </h1>
   <p>
  WEB在线文件管理器主要是用于管理项目文件,实现在线编辑、修改、删除等操作。   </p>
   <p>
   <a class="btn btn-primary btn-large" href="#">查看更多 ?</a>
   </p>
  </p>
  <table class="table table-bordered table-hover table-condensed">
   <thead>
   <tr>
    <th>
    类型    </th>
    <th>
    名称    </th>
    <th>
    读/写/执行    </th>
    <th>
    访问时间    </th>
  <th>
   操作  </th>
   </tr>
   </thead>
   <tbody>
  <!-- 目录部分 -->
  <?php
  if(is_array($info['dir'])){
  foreach($info['dir'] as $val){  ?>
  <tr class="success">
  <td><span class="glyphicon glyphicon-folder-close"></span></td>
  <td><?php echo $val['showName'];?></td>
  <td>
   <span class="glyphicon <?php echo $val['readable']?'glyphicon-ok':'glyphicon-remove';?>"></span>
   <span class="glyphicon <?php echo $val['writable']?'glyphicon-ok':'glyphicon-remove';?>"></span>
   <span class="glyphicon <?php echo $val['executable']?'glyphicon-ok':'glyphicon-remove';?>"></span>
  </td>
  <td><?php echo $val['atime'];?></td>
  <td>
   <a href="index.php?path=<?php echo $val['fileName'];?>" class='btn btn-primary btn-sm'>打开</a>
   <a href="javascript:void(0)" class='btn btn-primary btn-sm renameDir' data-url='index.php?act=renameDir&fileName=<?php echo $val['fileName'];?>&path=<?php echo $path;?>' data-showName='<?php echo $val['showName'];?>'>重命名</a>
   <a href="#" class='btn btn-primary btn-sm'>剪切</a>
   <a href="#" class='btn btn-primary btn-sm'>复制</a>
   <a href="javascript:void(0)" class='btn btn-danger btn-sm delDir' data-url='index.php?act=delDir&fileName=<?php echo $val['fileName'];?>&path=<?php echo $path;?>' data-showName='<?php echo $val['showName'];?>'>删除</a>
  </td>
  </tr>
  <?php
  }
  }  ?>

  <!-- 文件部分 -->
  <?php
  if(is_array($info['file'])){
  foreach($info['file'] as $val){  ?>
  <tr class="warning">
  <td><span class="glyphicon glyphicon-file"></span></td>
  <td><?php echo $val['showName'];?></td>
  <td>
   <span class="glyphicon <?php echo $val['readable']?'glyphicon-ok':'glyphicon-remove';?>"></span>
   <span class="glyphicon <?php echo $val['writable']?'glyphicon-ok':'glyphicon-remove';?>"></span>
   <span class="glyphicon <?php echo $val['executable']?'glyphicon-ok':'glyphicon-remove';?>"></span>
  </td>
  <td><?php echo $val['atime'];?></td>
  <td>
   <a href="#" class='btn btn-primary btn-sm showContents' data-url="index.php?act=showContents&fileName=<?php echo $val['fileName'];?>&path=<?php echo $path;?>">查看</a>
   <a href="#" class='btn btn-primary btn-sm'>编辑</a>
   <a href="#" class='btn btn-primary btn-sm'>下载</a>
   <a href="#" class='btn btn-primary btn-sm'>重命名</a>
   <a href="#" class='btn btn-primary btn-sm'>剪切</a>
   <a href="#" class='btn btn-primary btn-sm'>复制</a>
   <a href="#" class='btn btn-danger btn-sm'>删除</a>
  </td>
  </tr>
  <?php
  }
  }  ?>
   </tbody>
  </table>
  </p>
 </p>
 </p>


 <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
 <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
 <!-- Include all compiled plugins (below), or include inpidual files as needed -->
 <script src="js/bootstrap.min.js"></script>
 <script src="layer/layer.js"></script>
 <script src="js/dir.js"></script>
 <script src="js/file.js"></script>
 </body></html>

目录函数文件 dir.func.php

<?php/**
 * 读取目录下的信息返回
 * @method read_directory
 * @param string  $path 目标目录
 * @return mixed  false|array */function read_directory(string $path){ if(!is_dir($path)){ return false;
 } $info=[]; $handle=opendir($path); while(($item=@readdir($handle))!==false){ if($item!='.'&&$item!='..'){ $filePath=$path.DIRECTORY_SEPARATOR.$item; $info['fileName']=$filePath; $info['showName']=$item; $info['readable']=is_readable($filePath)?true:false; $info['writable']=is_writable($filePath)?true:false; $info['executable']=is_executable($filePath)?true:false; $info['atime']=date('Y/m/d H:i:s',fileatime($filePath)); if(is_file($filePath)){ $arr['file'][]=$info;
 } if(is_dir($filePath)){ $arr['dir'][]=$info;
 }
 }
 } closedir($handle); return $arr;
}/**
 * 创建目录
 * @method create_dir
 * @param string $path 目录名称
 * @return mixed  true|string */function create_dir(string $path){ if(is_dir($path)){ return $path.'当前目录已存在同名文件';
 } if(!mkdir($path,755,true)){ return $path.'目录创建失败';
 } return true;
}/**
 * 重命名目录
 * @method rename_dir
 * @param string $oldName 原目录
 * @param string $newName 新名称
 * @return mixed  string|true */function rename_dir(string $oldName,string $newName){ if(!is_dir($oldName)){ return '原目录不存在';
 } if(is_dir($newName)){ return '当前目录下存在同名文件';
 } if(!rename($oldName,$newName)){ return '重命名失败';
 } return true;
}/**
 * 删除目录
 * @method del_dir
 * @param string $path 目录名称
 * @return mixed true|string */function del_dir(string $path){ if(!is_dir($path)){ return '目录不存在';
 } $handle=opendir($path); while(($item=@readdir($handle))!==false){ if($item!='.'&&$item!='..'){ $pathName=$path.DIRECTORY_SEPARATOR.$item; if(is_file($pathName)){
 @unlink($pathName);
 } if(is_dir($pathName)){ $func=__FUNCTION__; $func($pathName);
 }
 }
 } closedir($handle); rmdir($path); return true;
}

文件函数 file.func.php

<?php/**
 * 创建文件
 * @method create_file
 * @param string $fileName 文件名称
 * @param array $allowExt 允许的文件类型
 * @return mixed  true|string */function create_file(string $fileName,$allowExt=array('txt','html','php')){ if(is_file($fileName)){ return '当前目录下存在同名文件';
 } $ext=strtolower(pathinfo($fileName,PATHINFO_EXTENSION)); if(!in_array($ext,$allowExt)){ return '非法文件类型';
 } if(!touch($fileName)){ return '文件创建失败';
 } return true;
}/**
 * 查看文件内容
 * @method show_contents
 * @param string $fileName 文件名称
 * @param array  $allowExt 允许的类型
 * @return string   文件内容 */function show_contents(string $fileName,$allowExt=array('jpg','jpeg','png','gif','txt','html','php')){ if(!is_file($fileName)){ return '文件不存在';
 } $ext=strtolower(pathinfo($fileName,PATHINFO_EXTENSION)); if(!in_array($ext,$allowExt)){ return '非法文件类型';
 } //检测是否是真实图片
 if(getimagesize($fileName)){ $res="<img src='{$fileName}' class='img-responsive'/>";
 }else{ $str=file_get_contents($fileName); if(strlen($str)>0){ $res=highlight_string($str,true);
 }else{ $res='文件中没有内容';
 }
 } return $res;
}

本文来自Gxlcms,php教程栏目,欢迎学习!

热心网友 时间:2022-04-29 11:01

给你画个框架:

基本功能:上传/下载/浏览/注册/登录

设计数据库表

套用网上的源码,这类源码一搜一大堆,现成的上传组件,现成的登录注册组件,你只需要套进来之后桥接一下,梳理下流程,连接数据库就行.

调整页面.梳理流程,完事.

热心网友 时间:2022-04-29 12:19

先分析需求,设计数据库或者你直接存本地文件,然后在决定用什么模板,什么框架,然后细化每一个功能模块,设计页面,写前端,搭后台

热心网友 时间:2022-04-29 13:54

这个基本来说很简单的啊!我是学net的你这个就是几个页面而已啊!你也可以去淘宝上有现成的你去买个!在不行你去百度上找个源码自己改下!

热心网友 时间:2022-04-29 15:45

这种东西能搜到很多源码的,修修改改就好,比如这个网站GitHub

热心网友 时间:2022-04-29 17:53

这很简单啊

登录cookie session
上传 file
下载 就正常的读取文件就行了

热心网友 时间:2022-04-29 20:18

你的源代码还在吗?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
伊犁师范学院办学规模 伊犁师范大学研究生院建立时间 伊犁师范大学小学教育研究生专业好考不 ...计算除法算式什么除以四十七时错把除数四十七写成了七十四,结果得到... 2024伊犁师范大学研究生学费多少钱一年 被除数47错写成74这样商比原来多了3个而余数恰好相同除数余数各是多少... 在计算除法时把除数47写成74,得到的商是12,余数是29,正确的结果应该�... 用美金换日元好还是用人民币换日元好? 去日本旅游··兑换和实用日元最实惠的方法·· 核桃和桂圆治失眠吗 php如何支持中文目录和文件名? 怎么把ownCloud PHP网盘程序与OSS对接 请问这种网盘系统叫什么呢,是ASP的 建网盘网站 phpdisk网盘系统的sql语句在哪个文件中 用PHP如何做出云盘网站? 用PHP写网页后端,如何让用户可以上传文件?如何让网页保存这些文件?如 用php做的网盘,网盘页面用的是js,但是登陆上之后,页面的目录树总是不显示,请高手指教啊! 请强人推荐个好的PHP网盘系统 PHP如何实现网盘以及压缩包的功能操作 phpdiskdbconnecterror下载啥意思 360N5S怎么root 中兴N5S怎么进入Recovery模式 360N5S手机已锁定怎么解锁 360n5s怎么恢复官方rec 360n5s手机怎么进入recovery 抗击疫情的古诗 和疫情相关的古诗 抗击疫情五字小诗怎么写? 抗疫情的诗句 古诗 战胜疫情的诗句 求极简网盘 《PHP程序设计经典300例》pdf下载在线阅读全文,求百度网盘云资源 求《php从入门到精通》全文免费下载百度网盘资源,谢谢~ 求《PHP核心技术与最佳实践》全文免费下载百度网盘资源,谢谢~ 什么是满堂支撑体系 满堂脚手架什么情况下搭设,3.6m内需要吗? 满堂架的搭设规格 工伤保险赔偿需不需要出院证明 报工伤保险,具体需要什么资料 工伤出院应带什么手续出院 员工出工伤出院时需要公司办理出院手续吗 工伤报保险需要什么资料 工伤保险申报要带出院记录原件吗?不带可以吗 走工伤保险的程序 工伤住院后没有在该院的工伤保险备案出院办不到怎么办? 手指骨折工伤走保险出院需要什么手续? 上工伤保险需要拿什么东西 受工伤出院后能报销医疗费吗? 工伤出院病历公司有权拿走吗 工伤出院后医院的医疗费用收据已经给单位拿去走保险了,还可以进行工伤鉴定吗?