摘要:web文件管理器有1、comm.php 公共提示文件2、config.php //配置文件3、filefunction.php 文件函數(shù)庫4、oprate.php //操用庫文件5、file.php主頁面文件file.js文件//顯示創(chuàng)建文件,目錄及上傳文件function creat(obj){ var file=document.getElementsByClassNa
web文件管理器有
1、comm.php 公共提示文件
2、config.php //配置文件
3、filefunction.php 文件函數(shù)庫
4、oprate.php //操用庫文件
5、file.php主頁面文件
file.js文件
//顯示創(chuàng)建文件,目錄及上傳文件
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;
}
}
//查看預(yù)覽圖片
layui.use('layer', function(){
$= layui.jquery;
var layer = layui.layer;
})
function showView(value,fSrc,flag,str=''){
//value為圖片名,fSrc為圖片路徑,flag為判斷圖片 文本類型標(biāo)記,str為文本內(nèi)容
//判斷查看是否為圖片
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";
//請求的路徑名為空,就設(shè)置$path等于'file'目錄
if(!@$_REQUEST['path']){
$path="file";
}else{
$path=$_REQUEST['path'];
}
//讀文件夾
$data=readFloder($path);
if(!$data){
echo "<script>alert('該目錄無文件')</script>";
}
//操作配置
//判斷請求操作標(biāo)志
@$act=$_REQUEST['act'];
//接收請求的文件名
@$filename=$_REQUEST['fileName'];
//接收請求的文件夾名
@$flodername=$_REQUEST['floderName'];
filefunction.php 文件函數(shù)庫
<?php
//創(chuàng)建文件
function createFile($filename){
if(!file_exists($filename)){
touch($filename);
return '文件創(chuàng)建成功';
}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');
//復(fù)制文件
function copyFile($filename,$dest){
if(!file_exists($filename)||!is_writable($filename)){
return '文件不存在或不可寫操作,不能復(fù)制!';
}
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 '文件復(fù)制成功!';
}
return '文件復(fù)制失敗!';
}
//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'));
//讀取文件內(nèi)容
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'));
//寫入文件內(nèi)容
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');
//
//創(chuàng)建目錄
function createFloder($floderName){
if(!file_exists($floderName)){
if(mkdir($floderName,0777,true)){
return '創(chuàng)建目錄成功';
}
}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');
//
//復(fù)制目錄
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 '復(fù)制目錄成功';
}
return '復(fù)制目錄失敗或不存在';
}
//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 '剪切復(fù)制目錄失敗或不存在';
}
//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 '該目錄下不存在目錄';
// }
// }
// 容量大小轉(zhuǎn)換
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 '文件上傳失?。?#39;;
}
break;
case 1 :
$reslut='上傳的文件超過了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值。';
break;
case 2 :
$reslut='上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值。';
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
//創(chuàng)建文件
if($act=="創(chuàng)建文件"){
$mess=createFile($path.'/'.$filename);
messAlert($mess,$path);
}
//創(chuàng)建文件夾
if($act=="創(chuàng)建文件夾"){
$mess=createFloder($path.'/'.$flodername);
messAlert($mess,$path);
}
//上傳文件
if($act=="上傳文件"){
$mess=uploadfile($_FILES['uploadFile'],$path);
messAlert($mess,$path);
}
//修改內(nèi)容
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="修改內(nèi)容">
</form>';
echo $str;
}
//執(zhí)行修改內(nèi)容
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;
}
//執(zhí)行重命名
if($act=='doRename'){
$newname=$_REQUEST['newname'];
//echo $path;
$mess=renameFile($filename,$newname);
messAlert($mess,dirname($filename));
}
//復(fù)制文件
if($act=='copyname'){
$str='<form action="file.php?act=doCopyname" method="post">
請輸入復(fù)制名稱:<input type="text" name="copyName">
<input type="hidden" name="fileName" value="'.$filename.'">
<input type="hidden" name="path" value="'.$path.'">
<input type="submit" value="復(fù)制文件">
</form>';
echo $str;
}
//執(zhí)行復(fù)制文件
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">
請輸入復(fù)制名稱:<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;
}
//執(zhí)行剪切文件
if($act=='doCutname'){
$cutname=$_REQUEST['cutName'];
$dir=dirname($filename);
$dir=$dir.'/'.$cutname;
$mess=cutFile($filename,$dir);
messAlert($mess,dirname($filename));
}
//執(zhí)行下載文件
if($act=='downname'){
downFile($filename);
}
//刪除文件
if($act=='delname'){
echo "<script> if(window.confirm('你確定刪除嗎?')){location.href='file.php?act=doDelname&fileName={$filename}'}</script>";
}
//執(zhí)行刪除文件
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;
}
//執(zhí)行重命名文件夾
if($act=='doRenamefloder'){
$renameFloder=$_REQUEST['renameFloder'];
$renameFloder=dirname($flodername).'/'.$renameFloder;
$mess=renameFloder($flodername,$renameFloder);
messAlert($mess,dirname($flodername));
}
//復(fù)制文件夾
if($act=='copyfloder'){
$str='<form action="file.php?act=doCopyfloder" method="post">
請輸入復(fù)制文件夾名稱:<input type="text" name="copyFloder">
<input type="hidden" name="floderName" value="'.$flodername.'">
<input type="submit" value="復(fù)制目錄">
</form>';
echo $str;
}
//執(zhí)行復(fù)制文件夾
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">
請輸入復(fù)制文件夾名稱:<input type="text" name="cutFloder">
<input type="hidden" name="floderName" value="'.$flodername.'">
<input type="submit" value="剪切目錄">
</form>';
echo $str;
}
//執(zhí)行剪切文件夾
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>";
}
//執(zhí)行刪除文件夾
if($act=='doDelfloder'){
$mess=delFloder($flodername);
messAlert($mess,dirname($flodername));
}
file.php //主文件
<!DOCTYPE html>
<?php
//設(shè)置時區(qū)
ini_set('date.timezone','Asia/Shanghai');
//加載配置文件
include "config.php";
//加載公共提示文件
include "comm.php";
//加載操作文件
include "oprate.php";
?>
<html>
<head>
<meta charset="utf-8">
<title>web文件管理系統(tǒng)</title>
<link rel="stylesheet" type="text/css" href="layui/css/layui.css">
<link rel="stylesheet" ty
批改老師:查無此人批改時間:2019-10-12 16:27:41
老師總結(jié):完成的不錯。目錄操作,了解就行了。 有很多寫好的功能,可以直接使用。因?yàn)閷懞煤螅苌俑膭印?