file.func.php
<?php
/**
* 轉(zhuǎn)化字節(jié)大小
* @param number $size
* @return number
*/
function transByte($size) {
// Bytes/KB/MB/GB/TB/EB
$arr = array (
"B",
"KB",
"MB",
"GB",
"TB",
"TB"
);
$i = 0;
while ( $size > 1024 ) {
$size /= 1024;
$i ++;
}
return round ( $size, 2 ) . $arr [$i];
}
function createFile($filename) {
// file/1.txt
// 驗證文件名的合法性,是否包含/,*,<,>,?,|
$pattern = "/[\/,\*,<>,\?\|]/";
// basename 返回路徑中的文件名部分
if (! (preg_match ( $pattern, basename ( $filename ) ))) {
// 檢測當(dāng)前目錄下是否存在同名文件
if (! file_exists ( $filename )) {
// 通過touch創(chuàng)建
if (touch ( $filename )) {
return "創(chuàng)建文件成功";
} else {
return "創(chuàng)建文件失敗";
}
} else {
return "文件已存在";
}
} else {
return "包含非法字符";
}
}
?>
common.func.php
<?php
/**
* 提示信息并跳轉(zhuǎn)
* @param string $mes
* @param string $url
*/
function alertMes($mes, $url) {
echo "<script type='text/javascript' charset='gbk'>alert('$mes');location.href='$url'</script>";
}
?>
index.php
<?php
require_once ('dir.func.php');
require_once 'file.func.php';
require_once 'common.func.php';
$path = 'file';
$path = isset ( $_REQUEST ['path'] ) ? $_REQUEST ['path'] : $path;
$arr = readDirectory ( $path );
$act = isset ( $_REQUEST ['act'] ) ? $_REQUEST ['act'] : '';
$filename = isset ( $_REQUEST ['filename'] ) ? $_REQUEST ['filename'] : '?';
$redirect = "index.php?path={$path}";
// echo $act."<br/>";
// echo $filename;
if ($act == '創(chuàng)建文件') {
$mes = createFile ( $path . "/" . $filename );
alertMes ( $mes, $redirect );
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
<link rel="stylesheet" href="cikonss.css" />
<script src="jquery-ui/js/jquery-1.10.2.js"></script>
<script src="jquery-ui/js/jquery-ui-1.10.4.custom.js"></script>
<script src="jquery-ui/js/jquery-ui-1.10.4.custom.min.js"></script>
<link rel="stylesheet"
href="jquery-ui/css/ui-lightness/jquery-ui-1.10.4.custom.css"
type="text/css" />
<style type="text/css">
body,p,div,ul,ol,table,dl,dd,dt {
margin: 0;
padding: 0;
}
a {
text-decoration: none;
}
ul,li {
list-style: none;
float: left;
}
#top {
width: 100%;
height: 48px;
margin: 0 auto;
background: #E2E2E2;
}
#navi a {
display: block;
width: 48px;
height: 48px;
}
#main {
margin: 0 auto;
border: 2px solid #ABCDEF;
}
.small {
width: 25px;
height: 25px;
border: 0;
}
</style>
<script type="text/javascript">
function show(dis){
document.getElementById(dis).style.display="block";
}
function delFile(filename,path){
if(window.confirm("您確定要刪除嘛?刪除之后無法恢復(fù)喲!!!")){
location.href="index.php?act=delFile&filename="+filename+"&path="+path;
}
}
function delFolder(dirname,path){
if(window.confirm("您確定要刪除嘛?刪除之后無法恢復(fù)喲!!!")){
location.href="index.php?act=delFolder&dirname="+dirname+"&path="+path;
}
}
function showDetail(t,filename){
$("#showImg").attr("src",filename);
$("#showDetail").dialog({
height:"auto",
width: "auto",
position: {my: "center", at: "center", collision:"fit"},
modal:false,//是否模式對話框
draggable:true,//是否允許拖拽
resizable:true,//是否允許拖動
title:t,//對話框標(biāo)題
show:"slide",
hide:"explode"
});
}
function goBack($back){
location.href="index.php?path="+$back;
}
</script>
</head>
<body>
<div id="showDetail" style="display: none">
<img src="" id="showImg" alt="" />
</div>
<h1>慕課網(wǎng)-在線文件管理器</h1>
<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>
<li><a href="#" title="返回上級目錄" onclick="goBack('')"><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>請輸入文件夾名稱</td>
<td><input type="text" name="dirname" /> <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>請輸入文件名稱</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>請選擇要上傳的文件</td>
<td><input type="file" name="myFile" /> <input type="submit"
name="act" value="上傳文件" /></td>
</tr>
<tr>
<td>編號</td>
<td>名稱</td>
<td>類型</td>
<td>大小</td>
<td>可讀</td>
<td>可寫</td>
<td>可執(zhí)行</td>
<td>創(chuàng)建時間</td>
<td>修改時間</td>
<td>訪問時間</td>
<td>操作</td>
</tr>
<?php
if ($arr ['file']) {
$i = 1;
foreach ( $arr ['file'] as $val ) {
$p = $path . "/" . $val;
?>
<tr>
<td><?php echo $i;?></td>
<td><?php echo $val;?></td>
<td><?php $src=filetype($p)=='file'?"file_ico.png":"folder_ico.png";?>
<img src="images/<?php echo $src;?>" alt="" title="文件" /></td>
<td><?php echo transByte(filesize($p));?></td>
<td><?php $src=is_readable($p)?"correct.png":"error.png"?>
<img src="images/<?php echo $src?>" alt="" class="small" /></td>
<td><?php $src=is_writeable($p)?"correct.png":"error.png"?>
<img src="images/<?php echo $src?>" alt="" class="small" /></td>
<td><img
src="images/<?php echo (is_executable($p)? "correct.png":"error.png");?>"
alt="" class="small" /></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=""><img class="small" src="images/show.png" alt=""
title="查看" /></a>| <a href=""><img class="small"
src="images/edit.png" alt="" title="修改" /></a>| <a href=""><img
class="small" src="images/rename.png" alt="" title="重命名" /></a>| <a
href="">![](images/copy.png)</a>|
<a href=""><img class="small" src="images/cut.png" alt=""
title="剪切" /></a>| <a href="" onclick=""><img class="small"
src="images/delete.png" alt="" title="刪除" /></a>| <a href=""><img
class="small" src="images/download.png" alt="" title="下載" /></a></td>
</tr>
<?php
$i ++;
}
}
?>
</table>
</form>
</body>
</html>