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:完成的不错。目录操作,了解就行了。 有很多写好的功能,可以直接使用。因为写好后,很少改动。