### 功能控制完备的 PHP 上载程序(3)

get_config($configureFile,$actionid,"upload");
?>
<html>
<head>
<title>文件管理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<SCRIPT LANGUAGE="JavaScript">
<!--
function MM_goToURL() { //v3.0
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
function mydelfun(fileName) {
answer=confirm('您确定要删除'+fileName+'文件吗？');
if(answer == 1){
MM_goToURL('parent','upfile.php?actid=<? echo $actionid;?>&username=<? echo $username;?>&filename='+fileName+'&sec=<? echo $password;?>');return document.MM_returnValue;}
else{
}
}
//-->
</SCRIPT>
<body bgcolor="#FFFFFF">
<table width="80%" border="0" cellspacing="0" cellpadding="1" align="center">
<tr>
<td width="25%">&nbsp;</td>
</tr>
<tr>
<td width="25%">操作 ID：<?echo $actionid;?></td>
</tr>
<tr>
<td width="25%">用户名：<?echo $username;?></td>
</tr>
<tr>
<td width="25%">当前目录：<?echo $targetDir?></td>
</tr>
<tr>
<td width="25%">&nbsp;</td>
</tr>
</table>
<table width="95%" border="0" cellspacing="0" cellpadding="4" align="center">
<tr bgcolor="#000066">
<td width="46%"><font color="#FFFFFF">文件名称</font></td>
<td width="20%"><font color="#FFFFFF">文件大小</font></td>
<td width="22%"><font color="#FFFFFF">创建时间</font></td>
<td width="12%" align="center"><font color="#FFFFFF">有关操作</font></td>
</tr>
</table>
<table width="95%" border="0" cellspacing="0" cellpadding="3" align="center">
<?
$handle=opendir($targetDir."/");
$maxLength=1;
while ($file = readdir($handle)) {
if(is_file($targetDir."/".$file)){
if($maxLength%2) {$mbgc="#CCCCCC";}else{$mbgc="#ffffff";}
$maxLength++;
echo "<tr bgcolor="$mbgc"><td width="46%">$file</td>
<td width="20%">";
echo filesize($targetDir."/".$file);
echo "</td><td width="22%">";
$filemod = filemtime($targetDir."/".$file);
$filemodtime = date("Y-m-d H:i:s", $filemod);
print($filemodtime);
echo "</td><td width="12%" align="center"><a href=javascript:mydelfun('$file');>删除</a></td></tr>";
}
}
closedir($handle);
?>
</table>
<table width="80%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>&nbsp;</td>
</tr>
<tr align="center">
<td>本操作 ID 的 <a href=upfile.php?actid=<? echo $actionid?>&type=up" target="_blank">上传日志</a> <a href=upfile.php?actid=<? echo $actionid?>&type=del" target="_blank">管理日志</a></td>
</tr>
</table>
</body>
</html>
<?
exit;
};
##删除管理完毕
##删除文件操作
if($sec){//
get_config($configureFile,$actid,"upload");
unlink($targetDir."/".$filename);
$message=date("Y-m-d H:i:s")." remote_ip:".$REMOTE_ADDR." UserName:".$username." delete FileName:".$filename."";
putLog($actid,$message,"b");
header("location:upfile.php?username=$username&actionid=$actid&actiontype=del&password=$sec");
exit;
}
if($type){}else{exit;};
function showLog($actid,$flag="a"){
$logfile="./log/".$actid.$flag.".log";
if(!file_exists($logfile)){echo "该操作 ID 暂时没有任何日志！";};
$logarray=file($logfile);
while (list($key,$value) = each($logarray)) {
echo $value."<br>";
}
}
if(trim($type)=="del"){showLog($actid,$flag="b");}else{showLog($actid);};
//主程序结束
?>
■配置文件 config.inc.php
<?
####################################################################
#Project Name: Test
#Author :lanf
#Home Page: http://lanf.yeah.net
#E-mail:imbusy@263.net
#Time: 2001 . 9
####################################################################
[table up]
#id dir user max(kb) type check limit callback
fa001 /home/lanf/upload * 1900 * * * ./
#这就是说，标志为 fa001 的上传中，目标路径是/home/lanf/upload（当然这需要赋予 php 在这个目录下写的权限），限定的操作用户是*（表示任何人，当然你也可以限制为 lanf,yy 等等），每次上传的大小限制为 1900KB，类型为任何类型（*，当然你也可以限制为 gif,jpg 等后缀，用逗号分隔。如果限制是 gif 或者 jpg 的话，系统自动读取若干字节检查文件类型是否为伪冒）。check 项为是否调用外部程序检验上传文件真伪，若不调用，直接写*，调用直接写该文件绝对路径。limit 项是针对调用页的限制，不限制可以写*，限制的话，填写该主机域名或者 ip 地址，可以支持 192.*.*.*等区域授权方式。最后一项是返回页面，上传文件后调用哪个 URL（注意，填写的是 url，确保系统路径不被泄漏）