摘要: web版文件管理器就是通過(guò)點(diǎn)擊判斷觸發(fā)創(chuàng)建或重命名文件和文件夾,以及文件或文件夾的復(fù)制和剪切時(shí),獲取相對(duì)路徑的方法處理。前端顯示代碼:<?phpinclude "config.php";//操作配置項(xiàng)include "operation.php";?><!doctype html><html lang
web版文件管理器就是通過(guò)點(diǎn)擊判斷觸發(fā)創(chuàng)建或重命名文件和文件夾,以及文件或文件夾的復(fù)制和剪切時(shí),獲取相對(duì)路徑的方法處理。
前端顯示代碼:
<?php
include "config.php";
//操作配置項(xiàng)
include "operation.php";
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PHP中文網(wǎng)—Web在線文件管理器</title>
<link rel="stylesheet" href="css/cikonss.css"/>
<link rel="stylesheet" href="css/style.css"/>
<link rel="stylesheet" href="css/jquery-ui-1.10.4.custom.css" type="text/css"/>
<script src="js/jquery-1.10.2.js"></script>
<script src="js/jquery-ui-1.10.4.custom.js"></script>
<script src="js/action.js"></script>
</head>
<body>
<h1 align="center">PHP中文網(wǎng)—Web在線文件管理器</h1>
<div id="showDetail" style="display:none"><img src="" id="showImg" alt=""/></div>
<div id="top">
<ul id="navi">
<li><a href="index.php" title="主目錄"><span style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span class="icon-home"></span></span></a></li>
<li><a href="#" onclick="show('createFile')" title="新建文件"><span
style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span
class="icon-file"></span></span></a></li>
<li><a href="#" onclick="show('createFolder')" title="新建文件夾"><span
style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span
class="icon-folder"></span></span></a></li>
<li><a href="#" onclick="show('uploadFile')" title="上傳文件"><span
style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span
class="icon-upload"></span></span></a></li>
<?php
$back = $data =="file" ? "file" : dirname($path);
?>
<li><a href="#" title="返回上級(jí)目錄" onclick="goBack('<?php echo $back; ?>')"><span
style="margin-left: 8px; margin-top: 0px; top: 4px;" class="icon icon-small icon-square"><span
class="icon-arrowLeft"></span></span></a></li>
</ul>
</div>
<form action="index.php" method="post" enctype="multipart/form-data">
<table width="100%" border="1" cellpadding="5" cellspacing="0" bgcolor="#ABCDEF" align="center">
<tr id="createFolder" style="display:none;">
<td>請(qǐng)輸入文件夾名稱</td>
<td>
<input type="text" name="dirname"/>
//這里的<?php echo $path?>是當(dāng)前文件夾目錄
<input type="hidden" name="path" value="<?php echo $path?>"/>
<input type="submit" name="act" value="創(chuàng)建文件夾"/>
</td>
</tr>
<tr id="createFile" style="display:none;">
<td>請(qǐng)輸入文件名稱</td>
<td>
<input type="text" name="filename"/>
<input type="hidden" name="path" value="<?php echo $path?>"/>
<input type="submit" name="act" value="創(chuàng)建文件"/>
</td>
</tr>
<tr id="uploadFile" style="display:none;">
<td>請(qǐng)選擇要上傳的文件</td>
<td><input type="file" name="myFile"/>
<input type="submit" name="act" value="上傳文件"/>
</td>
</tr>
</table>
</form>
<table width="100%" border="1" cellpadding="5" cellspacing="0" bgcolor="#ABCDEF" align="center">
<tr>
<th>編號(hào)</th>
<th>名稱</th>
<th>類型</th>
<th>大小</th>
<th>可讀</th>
<th>可寫</th>
<th>可執(zhí)行</th>
<th>創(chuàng)建時(shí)間</th>
<th>修改時(shí)間</th>
<th>訪問(wèn)時(shí)間</th>
<th>操作</th>
</tr>
<?php
if(@$data['file']){
$i = 1;
foreach ($data['file'] as $v) {
$p = $path . "/" . $v; //主頁(yè)目錄$path下拼接文件名$v
// var_dump($p);
?>
<tr>
<td><?php echo $i;?></td>
<td><?php echo $v;?></td>
<td><?php $src = filetype($p)=="file"?"file_ico.png":"folder_ico.png";?><img src="images/<?php echo $src; ?>" title="文件"></td>
<td><?php echo trans_byte(filesize($p));?></td>
<td><?php $src = is_readable($p)?"correct.png":"error.png"?><img class="small" src="images/<?php echo $src;?>"></td>
<td><?php $src = is_writable($p)?"correct.png":"error.png"?><img class="small" src="images/<?php echo $src;?>"></td>
<td><?php $src = is_executable($p)?"correct.png":"error.png"?><img class="small" src="images/<?php echo $src;?>"></td>
<?php //時(shí)間不對(duì),修改php.ini中這個(gè)參數(shù):date.timezone = "Asia/Shanghai"?>
<td><?php echo date("Y-m-d H:i:s",filectime($p))?></td>
<td><?php echo date("Y-m-d H:i:s",filemtime($p))?></td>
<td><?php echo date("Y-m-d H:i:s",fileatime($p))?></td>
<td>
<?php
//獲取文件后綴,strtolower轉(zhuǎn)換成小寫字母
$ext = strtolower(pathinfo($v,PATHINFO_EXTENSION));
//文件后綴數(shù)組
$imagesExt = ['gif','png','jpg','jpeg'];
//用in_array判斷
if(in_array($ext,$imagesExt)){
?>
<a href="#" onclick="showDetail('<?php echo $v;?>','<?php echo $p;?>')"><img class="small" src="images/show.png" alt="" title="查看"/></a>
<?php
}else{
?>
<a href="index.php?act=showContent&path=<?php echo $path;?>&filename=<?php echo $p;?>"><img class="small" src="images/show.png" alt="" title="查看"/></a>
<?php
}
?>
<a href="index.php?act=editContent&path=<?php echo $path;?>&filename=<?php echo $p;?>"><img class="small" src="images/edit.png" alt="" title="修改"/></a>
<a href="index.php?act=renameFile&path=<?php echo $path;?>&filename=<?php echo $p;?>"><img class="small" src="images/rename.png" alt="" title="重命名"/></a>
<a href="index.php?act=copyFile&path=<?php echo $path; ?>&filename=<?php echo $p;?>"><img class="small" src="images/copy.png" alt="" title="復(fù)制"/></a>
<a href="index.php?act=cutFile&path=<?php echo $path; ?>&filename=<?php echo $p;?>"><img class="small" src="images/cut.png" alt="" title="剪切"/></a>
<a href="index.php?act=dowFile&path=<?php echo $path; ?>&filename=<?php echo $p;?>"><img class="small" src="images/download.png" alt="" title="下載"/></a>
<a href="#" onclick="delFile('<?php echo $p;?>','<?php echo $path; ?>')"><img class="small" src="images/delete.png" alt="" title="刪除"/></a>
</td>
</tr>
<?php
$i++;
}
}
if(@$data['dir']){
$i=1;
foreach($data['dir'] as $v){
$p = $path."/".$v;
?>
<tr>
<td><?php echo $i;?></td>
<td><?php echo $v;?></td>
<td><?php $src = filetype($p)=="file"?"file_ico.png":"folder_ico.png"?><img src="images/<?php echo $src;?>" title="文件夾"></td>
<td><?php echo trans_byte(filesize($p));?></td>
<td><img class="small" src="images/correct.png"></td>
<td><img class="small" src="images/correct.png"></td>
<td><img class="small" src="images/error.png"></td>
<td><?php echo date("Y-m-d H:i:s",filectime($p))?></td>
<td><?php echo date("Y-m-d H:i:s",filemtime($p))?></td>
<td><?php echo date("Y-m-d H:i:s",fileatime($p))?></td>
<td>
<a href="index.php?path=<?php echo $p;?>"><img class="small" src="images/show.png" alt="" title="查看"/></a>
<a href="index.php?act=renameFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>"><img class="small" src="images/rename.png" alt="" title="重命名"/></a>
<a href="index.php?act=copyFolder&path=<?php echo $path;?>&dirname=<?php echo $p;?>"><img class="small" src="images/copy.png" alt="" title="復(fù)制"/></a>
<a href="index.php?act=cutFolder&path=<?php echo $path?>&dirname=<?php echo $p;?>"><img class="small" src="images/cut.png" alt="" title="剪切"/></a>
<a href="#" onclick="delFolder('<?php echo $p;?>','<?php echo $path;?>')"><img class="small" src="images/delete.png" alt="" title="刪除"/></a>
</td>
</tr>
<?php
$i++;
}
}
?>
</table>
</body>
</html>操作判斷方法調(diào)用:
<?php
//操作配置
include "common.php";
if ($act == "創(chuàng)建文件"){
// var_dump($filename); //輸出文件加名稱
$mes = create_file($path."/".$filename);
alertMes($mes);
}elseif ($act == "showContent") {
//查詢文件中的內(nèi)容
$content = read_file($filename);
//判斷文件是否為空
if(strlen($content)){
$newContent = highlight_string($content,true);
//制作顯示框
$str = <<<HERE
<table width="100%" bgcolor="#5f4f5d">
<tr>
<td>{$newContent}</td>
</tr>
</table>
HERE;
echo $str;
}else{
alertMes('文件為空,請(qǐng)先編輯',$url);
}
//判斷點(diǎn)擊操作
}elseif ($act == "editContent") {
//獲取文件內(nèi)容
$content = file_get_contents($filename);
$str=<<<HERE
<form action="index.php?act=doEdit" method="post">
<textarea cols="500" rows="20" name="content">
{$content}
</textarea>
<input type="hidden" name="filename" value="{$filename}" />
<input type="submit" value="提交" />
</form>
HERE;
echo $str;
}elseif($act == "doEdit"){
$content = $_REQUEST['content'];
//寫入修改內(nèi)容
if(file_put_contents($filename, $content)){
$mes = '文件修改成功!';
}else{
$mes = '文件修改失敗!';
}
//返回提示操作
alertMes($mes,$url);
}elseif($act == "renameFile"){
$str=<<<HERE
<form action="index.php?act=doRename" method="post">
請(qǐng)輸入新名稱:<input type="text" name="newName" placehlder="請(qǐng)輸入新名稱" >
//隱藏傳遞文件目錄結(jié)構(gòu)
<input type="hidden" name="path" value="{$path}">
<input type="hidden" name="filename" value="{$filename}">
<input type="submit" value="重命名">
</form>
HERE;
echo $str;
}elseif($act == "doRename"){
$newName = $_REQUEST['newName'];
$mes = rename_file($filename,$path."/".$newName);
alertMes($mes,$url);
//判斷點(diǎn)擊操作
}elseif($act == "copyFile"){
$str =<<<HERE
<form action="index.php?act=doCopyFile" method="post">
文件復(fù)制到:<input type="text" name="destName" placeholder="將文件復(fù)制到">
<input type="hidden" name="path" value="{$path}" >
<input type="hidden" name="filename" value="{$filename}" >
<input type="submit" value="復(fù)制文件" >
</form>
HERE;
echo $str;
// 判斷操作
} elseif ($act == "doCopyFile") {
// 接收目標(biāo)目錄
$destName = $_REQUEST['destName'];
// 進(jìn)行復(fù)制操作
$mes = copy_file($filename, $path . "/" . $destName);
// 提示操作
alertMes($mes, $url);
}elseif($act == "cutFile"){
$str =<<<HERE
<form action="index.php?act=doCutFile" method="post">
文件剪切到:<input type="text" name="destName" placeholder="將文件剪切到">
<input type="hidden" name="path" value="{$path}" >
<input type="hidden" name="filename" value="{$filename}" >
<input type="submit" value="剪切文件" >
</form>
HERE;
echo $str;
}elseif($act == "doCutFile"){
// 接收目標(biāo)目錄
$destName = $_REQUEST['destName'];
// 進(jìn)行復(fù)制操作
$mes = cut_file($filename, $path . "/" . $destName);
// 提示操作
alertMes($mes, $url);
}elseif($act == "dowFile"){
$mes = dow_file($filename);
}elseif ($act == "delFile"){
if(unlink($filename)){
alertMes("文件刪除成功!",$url);
}else{
alertMes("刪除失敗",$url);
}
}elseif($act == "上傳文件"){
$fileInfo = $_FILES['myFile'];
$mes = upload_file($fileInfo,$path);
alertMes($mes,$url);
}elseif ($act == "創(chuàng)建文件夾") {
$mes = create_folder($path . "/" . $dirname);
alertMes($mes, $url);
}elseif($act == "renameFolder"){
$str =<<<HERE
<form action="index.php?act=doRenameFolder" method="post">
重命名為:<input type="text" name="newFolderName" placeholder="請(qǐng)輸入文件夾名稱">
<input type="hidden" name="dirname" value="{$dirname}">
<input type="hidden" name="path" value="{$path}">
<input type="submit" value="重命名">
</form>
HERE;
echo $str;
}elseif($act == "doRenameFolder"){
$newFolderName = $_REQUEST['newFolderName'];
$mes = rename_dir($dirname,$path . "/" . $newFolderName);
alertMes($mes,$url);
}elseif($act == "copyFolder"){
$str =<<<HERE
<form action="index.php?act=doCopyFolder" method="post">
復(fù)制:<input type="text" name="newFolderName" placeholder="復(fù)制到">
<input type="hidden" name="dirname" value="{$dirname}">
<input type="hidden" name="path" value="{$path}">
<input type="submit" value="復(fù)制">
</form>
HERE;
echo $str;
}elseif ($act == "doCopyFolder"){
//文件路勁
$newFolderName = $_REQUEST['newFolderName'];
$mes = copy_dir($dirname,$path."/".$newFolderName."/".basename($dirname));
alertMes($mes,$url);
}elseif($act == "cutFolder"){
$str =<<<HERE
<form action="index.php?act=doCutFolder" method="post">
剪切:<input type="text" name="newFolderName" placeholder="剪切到">
<input type="hidden" name="dirname" value="{$dirname}">
<input type="hidden" name="path" value="{$path}">
<input type="submit" value="剪切">
</form>
HERE;
echo $str;
}elseif($act == "doCutFolder"){
$newFolderName = $_REQUEST['newFolderName'];
cut_dir($dirname,$path."/".$newFolderName);
alertMes($mes,$url);
}elseif ($act == "delFolder"){
$mes = del_folder($dirname);
alertMes($mes,$url);
}
批改老師:西門大官人批改時(shí)間:2019-04-08 09:41:47
老師總結(jié):可以把php代碼里相關(guān)的操作封裝到函數(shù)里,這樣代碼會(huì)整潔很多。