摘要: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("");
$('.imgView img').attr({"src":fSrc,"height":"100%","width":"100%"});
}
//判断是否为TXT文本文件
if(flag=="txt"){
$('.imgView').html('');
$('.imgView').append("");
$('.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 公共提示文件
//公共提示信息
function messAlert($mes,$path='file'){
echo "";
}
config.php //配置文件
include "filefunction.php";
//请求的路径名为空,就设置$path等于'file'目录
if(!@$_REQUEST['path']){
$path="file";
}else{
$path=$_REQUEST['path'];
}
//读文件夹
$data=readFloder($path);
if(!$data){
echo "";
}
//操作配置
//判断请求操作标志
@$act=$_REQUEST['act'];
//接收请求的文件名
@$filename=$_REQUEST['fileName'];
//接收请求的文件夹名
@$flodername=$_REQUEST['floderName'];
filefunction.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 '';
// }
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 '';
}
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
$fsize=$fsize.'B';
}elseif($fsize
$fsize=round($fsize/$KB,2).'KB';
}elseif($fsize
$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 '
',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 '
',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.'
';
}
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 '
'.var_export($item,true).'
';
// 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
$fsize=$fsize.'B';
}elseif($fsize
$fsize=round($fsize/$KB,2).'KB';
}elseif($fsize
$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 //操用库文件
//创建文件
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='
'
.$content.
'
';echo $str;
}
//执行修改内容
if($act=='doEdit'){
$content=$_REQUEST['content'];
$mess=writeFile($filename,$content);
messAlert($mess,dirname($filename));
}
//重命名
if($act=='rename'){
$str='
请输入文件名称:
';echo $str;
}
//执行重命名
if($act=='doRename'){
$newname=$_REQUEST['newname'];
//echo $path;
$mess=renameFile($filename,$newname);
messAlert($mess,dirname($filename));
}
//复制文件
if($act=='copyname'){
$str='
请输入复制名称:
';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='
请输入复制名称:
';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 "";
}
//执行删除文件
if($act=='doDelname'){
$mess=delFile($filename);
messAlert($mess,dirname($filename));
}
//重命名文件夹
if($act=='renamefloder'){
$str='
请重命名文件夹名称:
';echo $str;
}
//执行重命名文件夹
if($act=='doRenamefloder'){
$renameFloder=$_REQUEST['renameFloder'];
$renameFloder=dirname($flodername).'/'.$renameFloder;
$mess=renameFloder($flodername,$renameFloder);
messAlert($mess,dirname($flodername));
}
//复制文件夹
if($act=='copyfloder'){
$str='
请输入复制文件夹名称:
';echo $str;
}
//执行复制文件夹
if($act=='doCopyfloder'){
$copyfloder=$_REQUEST['copyFloder'];
$copyfloder=dirname($flodername).'/'.$copyfloder;
$mess=copyFloder($flodername,$copyfloder);
messAlert($mess,dirname($flodername));
}
//剪切文件夹
if($act=='cutfloder'){
$str='
请输入复制文件夹名称:
';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 "";
}
//执行删除文件夹
if($act=='doDelfloder'){
$mess=delFloder($flodername);
messAlert($mess,dirname($flodername));
}
file.php //主文件
//设置时区
ini_set('date.timezone','Asia/Shanghai');
//加载配置文件
include "config.php";
//加载公共提示文件
include "comm.php";
//加载操作文件
include "oprate.php";
?>
web文件管理系统批改老师:欧阳批改时间:2019-10-12 16:27:41
老师总结:完成的不错。目录操作,了解就行了。 有很多写好的功能,可以直接使用。因为写好后,很少改动。