| 论坛注册| 加入收藏 | 设为首页| RSS
Google
您当前的位置:首页 > Linux频道 > Linux开发区 > WEB开发

功能控制完备的PHP上载程序

时间:2005-11-24 21:06:41  来源:  作者:
$callback); exit; }; ##上传完毕 ##删除管理 if($actiontype=="del"){ if(!($actionid && $username && $password )) { echo "<html>操作ID、用户名、密码缺一不可! <a href=javascript:window.history.back()>点这里返回修改</a></html>"; exit; } if(!get_config($configureFile,$actionid,$actiontype)) {echo "<html>不合法的操作ID。<a href=javascript:window.history.back()> 点这里返回修改</a></html>";exit;} if(!getUserRight($username,$user)){exit;} 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;?>&20041010132811.htm='+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%"> </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%"> </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> </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."/".$20041010132811.htm); $message=date("Y-m-d H:i:s")." remote_ip:".$REMOTE_ADDR." UserName:".$username." delete FileName:".$20041010132811.htm.""; 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,确保系统路径不被泄漏)

[table del]

#id user

fa001 lanf

up lanf

#这个意思是说,操作id为fa001中上传的文件,只有lanf可以删除

?>

    ■调用页面

<html>
<head>
<title>文件上传</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<table width="96%" border="1" align="center">
  <form method="post" action="upfile.php"
  name="upform" enctype="multipart/form-data" >
  <tr> 
      <td> 
        <table width="100%" border="0" cellpadding="0" cellspacing="0">
          <tr> 
           <td width="18%">操作ID</td>
            <td width="63%"> 
              <input type="text" name="actionid">
            </td>
            <td width="19%">  </td>
          </tr>
          <tr> 
            <td width="18%">用户名</td>
            <td width="63%"> 
              <input type="text" name="username">
            </td>
            <td width="19%">  </td>
          </tr>
          <tr> 
            <td width="18%">密  码</td>
            <td width="63%"> 
              <input type="password" name="password">
            </td>
            <td width="19%">  </td>
          </tr>
          <tr> 
            <td width="18%">本地文件</td>
            <td width="63%"> 
              <input type="file" name="userfile">
              <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
            </td>
            <td width="19%"> </td>
          </tr>
          <tr> 
            <td width="18%">目标文件</td>
            <td width="63%"> 
             <input type="text" name="newname">
              (完全文件名,不填写缺省使用原名) </td>
            <td width="19%"> </td>
          </tr>
          <tr>
            <td width="18%"> </td>
            <td width="63%">
              <input type="checkbox" name="forceover" value="1" disabled>
              如果目标文件重名强行覆盖(小心使用) </td>
            <td width="19%"> </td>
          </tr>
          <tr> 
            <td width="18%"> </td>
            <td width="63%"> 
              <input type="radio" name="actiontype" value="upload" checked>
              上传     
              <input type="radio" name="actiontype" value="del">
              管理     </td>
            <td width="19%"> </td>
          </tr>
          <tr> 
            <td width="18%"> </td>
            <td width="63%"> 
              <input type="submit" name="tok" value="确 定">
                     
              <input type="submit" name="reset" value="复 原">
            </td>
            <td width="19%"> </td>
          </tr>
        </table>
      </td>
  </tr> </form>
</table>
</body>
</html>

  这个程序应该还算是未完成版本,即用户身份的验证(用户名秘钥)的代码还没有写,但是相信对任何一个稍微熟悉php的人来说这都是很普通的问题,大家可以根据自己的需要和条件重做验证身份函数getUserRight即可完成。使用的时候这三个文件应该放在对php来说是可写的目录即可(因为要生成log文件)。本系统所有程序包在本站源码世界提供下载。

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
    无相关信息
栏目更新
栏目热门