原来的一个在线文件管理系统源代码
<?
###include ("config.inc.php");
$basedir = realpath($db);
$webname = "本程序由黔东明珠网络有限公司免费提供QQ172326362 278910201";
$updatecheck = "yes";
$enable_css = "no";
$enable_logout = "yes";
$allow_move = "yes";
$allow_down = "yes";
$allow_copy = "yes";
$allow_touch = "no";
$allow_rename = "yes";
$allow_edit = "yes";
$allow_chmod = "yes";
$allow_delete = "yes";
$allow_upload = "yes";
$allow_create_dir = "yes";
$allow_create_file = "yes";
$allow_display_env = "yes";
$not_allowed = "该操作不被禁止,请和你的网络管理员联系。";
$version = "2.0";
############### Size for textarea
if($enable_css == "yes")
{
$textrows = "27";
$textcols = "160";
}
else
{
$textrows = "20";
$textcols = "100";
}
############### If $wdir (working directory) isn't specified, set it as a slash (/)
if(!$wdir) $wdir="/";
############### HTML ender
$html_ender = "</td></tr><tr><td colspan=\"2\"><hr></td></tr><tr><th colspan=\"2\" bgcolor=\"#4C4C99\"><font size=\"-1\" color=\"white\" face=\"Arial,宋体\">黔东明珠网络有限公司免费空间管理系统测试版</font></th></tr></table></body></html>";
############### Calculate image size
function imagesize()
{
$size = GetImageSize("$image");
}
############### HTML header
function html_header(){
global $basedir;
global $wdir;
global $lastaction;
global $version;
global $HTTP_REFERER;
global $action;
global $webname;
global $display;
global $file;
global $browse;
global $raw;
global $image;
global $fileurl;
global $enable_css;
global $allow_display_env;
global $enable_logout;
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3c.org/TR/REC-html40/loose.dtd\">";
echo "<HTML>";
echo "<HEAD>";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">";
echo "<TITLE>黔东明珠Webedit $version ($webname)</TITLE>";
############### Cascaded Style Sheets
if($enable_css == "yes")
{
?>
<STYLE TYPE="text/css">
<!--
input
{
font-family : Arial,宋体;
font-size : 9;
color : #000033;
font-weight : normal;
border-color : #999999;
border-width : 1;
background-color : #FFFFFF;
}
textarea
{
font-family : Arial,宋体;
font-size : 9;
color : #000033;
font-weight : normal;
border-color : #999999;
border-width : 1;
background-color : #FFFFFF;
}
-->
</style>
<?
}
echo "</HEAD>";
echo "<BODY bgcolor=\"#C0C0C0\" link=\"#4C4C99\" vlink=\"#4C4C99\" alink=\"#4C4C99\">";
echo "<table border=\"0\" align=\"center\" cellspacing=\"3\" cellpadding=\"3\" width=\"600\">";
echo "<tr>";
echo " <th colspan=\"2\" width=\"100%\" bgcolor=\"#4C4C99\">";
if($allow_display_env == "yes")
{
echo " <A HREF=\"$PHP_SELF?action=env&wdir=$wdir\"><img src=\"./images/env.gif\" alt=\"环境变量\" border=\"0\" width=\"16\" height=\"15\"></A>";
}
echo " <font size=\"4\" color=\"white\" face=\"Arial,宋体\">黔东明珠Webedit$version</font>  ";
if($enable_logout == "yes")
{
echo " <A HREF=\"$PHP_SELF?action=help&wdir=$wdir\"><img src=\"./images/env.gif\" alt=\"检查版本或提意见\" border=\"0\" width=\"16\" height=\"15\"></A>";
}
echo " </th>";
echo "</tr>";
echo "<tr>";
echo " <td width\"15%\" align=\"left\"><A HREF=\"$PHP_SELF?action=root\"><font size=\"4\" face=\"Arial,宋体\">返回根目录</font></a>";
echo ". .<A HREF=\"quit.php\" title=\"退出\"><font size=\"4\" face=\"Arial,宋体\">退出</font></A>";
#########if ($allow_down == "yes")
######{
echo " . .<A HREF=\"unzip.php\" title=\"打包上传\" target=\"_blank\"><font size=\"4\" face=\"Arial,宋体\">打包上传</font></A>";
#########}
echo ". .<A HREF=\"$PHP_SELF?wdir=$wdir\" title=\"刷新当前目录\"><font size=\"4\" face=\"Arial,宋体\">刷新</font></a></td>";
echo "</tr>";
echo "<tr>";
echo " <td colspan=\"2\"><hr></td>";
echo "</tr>";
echo "<tr>";
############ We want a BACK link when viewing pictures and raw text.
if($action == "show")
{
echo " <td width=\"50%\" nobreak><b><font size=\"3\" color=\"#4C4C99\" face=\"Arial,宋体\">$lastaction</font></b></td>";
echo " <td width=\"50%\" nobreak align=\"right\"><b><font size=\"3\" color=\"#4C4C99\" face=\"Arial,宋体\"><a href=\"$HTTP_REFERER\" title=\"返回上一个页面\">返回</a></font></b></td>";
}
############ We dont want a BACK link
else
{
echo " <td colspan=\"2\"><b><font size=\"3\" color=\"#4C4C99\" face=\"Arial,宋体\">$lastaction</font></b></td>";
}
echo "<tr>";
echo "<td colspan=\"2\"><hr><td>";
echo "</tr>";
echo "<tr>";
echo "<td colspan=\"2\">";
}
############ File size calculations
function display_size($file){
$file_size = filesize($file);
if($file_size >= 1073741824)
{
$file_size = round($file_size / 1073741824 * 100) / 100 . "g";
}
elseif($file_size >= 1048576)
{
$file_size = round($file_size / 1048576 * 100) / 100 . "m";
}
elseif($file_size >= 1024)
{
$file_size = round($file_size / 1024 * 100) / 100 . "k";
}
else{
$file_size = $file_size . "b";
}
return $file_size;
}
############ List the files function
function list_files()
{
global $basedir;
global $wdir;
global $single;
global $key;
global $allow_move;
global $allow_chmod;
global $allow_create_file;
global $allow_create_dir;
global $allow_upload;
global $allow_touch;
global $allow_delete;
################## Load directory into array
$handle=opendir(".");
while ($file = readdir($handle))
{
if(is_file($file)) $filelist[] = $file;
}
closedir($handle);
############### List files
if($filelist)
{
############### Sort the filelist alphabetically
asort($filelist);
while (list ($key, $file) = each ($filelist))
{
############### Registered filetypes. You can add more filetypes here at wish..
############### Check what fileformat it is and give it the correct icon and attributes
$ext = strrchr ( $file , "." );
############### Image
if((!strcasecmp ($ext, ".gif")) || (!strcasecmp ($ext, ".jpg")) || (!strcasecmp ($ext, ".png")) || (!strcasecmp ($ext, ".bmp")) || (!strcasecmp ($ext, ".jpeg")))
{
$icon = "<IMG SRC=\"./images/image.gif\" alt=\"图像\" border=\"0\" width=\"16\" height=\"16\">";
$browse = "0";
$raw = "0";
$image = "1";
}
############### Textfile
elseif(!strcasecmp ($ext, ".txt"))
{
$icon = "<IMG SRC=\"./images/text.gif\" alt=\"文本\" border=\"0\" width=\"13\" height=\"16\">";
$browse = "0";
$raw = "1";
$image = "0";
}
############### Audiofile
elseif((!strcasecmp ($ext, ".wav")) || (!strcasecmp ($ext, ".mp2")) || (!strcasecmp ($ext, ".mp3")) || (!strcasecmp ($ext, ".mp4")) || (!strcasecmp ($ext, ".vqf")) || (!strcasecmp ($ext, ".midi")) || (!strcasecmp ($ext, ".mid")))
{
$icon = "<IMG SRC=\"./images/audio.gif\" alt=\"音频\" border=\"0\" width=\"16\" height=\"16\">";
$browse = "0";
$raw = "0";
$image = "0";
}
############### Webscript
elseif((!strcasecmp ($ext, ".phps")) || (!strcasecmp ($ext, ".php")) || (!strcasecmp ($ext, ".php2")) || (!strcasecmp ($ext, ".php3")) || (!strcasecmp ($ext, ".php4")) || (!strcasecmp ($ext, ".phtml")) || (!strcasecmp ($ext, ".asp")) || (!strcasecmp ($ext, ".asa")) || (!strcasecmp ($ext, ".cgi")) || (!strcasecmp ($ext, ".shtml")) || (!strcasecmp ($ext, ".pl")))
{
$icon = "<IMG SRC=\"./images/webscript.gif\" alt=\"WEB程序\" border=\"0\" width=\"15\" height=\"15\">";
$browse = "0";
$raw = "1";
$image = "0";
}
############### Apache Webserver security settings
elseif(!strcasecmp ($ext, ".htaccess"))
{
$icon = "<IMG SRC=\"./images/security.gif\" alt=\"Apache服务器安全设置\" border=\"0\" width=\"15\" height=\"16\">" ;
$browse = "0";
$raw = "1";
$image = "0";
}
############### Web page
elseif ((!strcasecmp ($ext, ".html")) || (!strcasecmp ($ext, ".htm")))
{
$icon = "<IMG SRC=\"./images/webpage.gif\" alt=\"网页\" border=\"0\" width=\"15\" height=\"15\">";
$browse = "0";
$raw = "1";
$image = "0";
}
############### WAP page
elseif(!strcasecmp ($ext, ".wml"))
{
$icon = "<IMG SRC=\"./images/webscript.gif\" alt=\"WAP页\" border=\"0\" width=\"15\" height=\"15\">";
$browse = "0";
$raw = "1";
$image = "0";
}
############### Compressed file
elseif((!strcasecmp ($ext, ".zip")) || (!strcasecmp ($ext, ".tar")) || (!strcasecmp ($ext, ".rar")) || (!strcasecmp ($ext, ".gz")))
{
$icon = "<IMG SRC=\"./images/text.gif\" alt=\"压缩文件\" border=\"0\" width=\"15\" height=\"15\">";
$browse = "0";
$raw = "0";
$image = "0";
}
############### Unknown
else
{
$icon = "<IMG SRC=\"./images/text.gif\" alt=\"未知文件类型\" border=\"0\" width=\"15\" height=\"15\">";
$browse = "0";
$raw = "1";
$image = "0";
}
############### List the file(s)
$filename=$basedir.$wdir.$file;
$fileurl=rawurlencode($wdir.$file);
$lastchanged = filectime($filename);
$changeddate = date("Y-d-m H:i:s", $lastchanged);
echo "<TR>";
echo "<TD align=\"center\" nobreak>";
############### Make the fileicon clickable for quickviewing
if($raw == "1")
{
echo "<A HREF=\"$PHP_SELF?action=show&wdir=$wdir&file=$fileurl&object=file&browse=$browse&raw=$raw\">";
}
if($image == "1")
{
echo "<A HREF=\"$PHP_SELF?action=show&wdir=$wdir&file=$fileurl&image=$image&object=file&browse=$browse&raw=$raw\">";
}
echo "$icon</TD>\n";
echo "<TD nobreak><font size =\"-1\" face=\"Arial,宋体\">" . htmlspecialchars($file) . "</font></TD>\n";
echo "<TD align=\"right\" nobreak><font size =\"-1\" face=\"Arial\">" . display_size($filename) . "</font></TD>";
echo "<TD align=\"right\" nobreak><font size =\"-1\" face=\"Arial\">" . $changeddate . "</font></TD><TD align=\"right\">";
############### CHMOD file?
if($allow_chmod == "yes")
{
echo "<A HREF=\"$PHP_SELF?action=chmod&wdir=$wdir&file=$fileurl&browse=$browse&raw=$raw&image=$image&fileurl=$fileurl\" title=\"改变 $file 的权限级别\">";
}
echo "<font size =\"-1\" face=\"Arial,宋体\">";
printf("%o", (fileperms($filename)) & 0777);
echo "</font>";
if($allow_chmod == "yes")
{
echo "</A>";
}
echo "</TD><TD nobreak>";
############### Move file?
if($allow_move == "yes")
{
echo " <A HREF=\"$PHP_SELF?action=move&wdir=$wdir&file=$fileurl&object=file&browse=$browse&raw=$raw&image=$image&fileurl=$fileurl\"><img src=\"./images/move.gif\" alt=\"移动、改名或者复制 $file\" border=\"0\" width=\"15\" height=\"15\"></A> ";
}
############### Touch file?
if($allow_touch == "yes")
{
echo " <A HREF=\"$PHP_SELF?action=touch&wdir=$wdir&touchfile=$fileurl&browse=$browse&raw=$raw&image=$image&fileurl=$fileurl\"><img src=\"/images/touch.gif\" alt=\"Touch $file\" border=\"0\" width=\"12\" height=\"16\"></A> ";
}
############### Delete file?
if($allow_delete == "yes")
{
echo "<A HREF=\"$PHP_SELF?action=del&wdir=$wdir&file=$fileurl&browse=$browse&raw=$raw&image=$image&fileurl=$fileurl\"><img src=\"./images/delete.gif\" alt=\"删除 $file\" border=\"0\" width=\"20\" height=\"16\"></A> ";
}
############### If the file can be browsed, give it the browse icon
if($browse == "1")
{
echo " <A HREF=\".$wdir$file\"><img src=\"./images/browse.gif\" alt=\"浏览 $file\" border=\"0\" width=\"16\" height=\"16\"></A> ";
}
############### If the file can be edited, give it the edit icon
if($raw =="1")
{
echo " <A HREF=\"$PHP_SELF?wdir=$wdir&action=edit&display=1&file=$fileurl&browse=$browse&raw=$raw&image=$image&fileurl=$fileurl\"><img src=\"./images/edit.gif\" alt=\"编辑 $file\" border=\"0\" width=\"16\" height=\"16\"></A> ";
}
}
}
}
############ List the directory function
function displaydir()
{
global $file;
global $basedir;
global $wdir;
global $allow_create_file;
global $allow_create_dir;
global $allow_upload;
global $allow_touch;
global $allow_delete;
global $allow_move;
global $single;
############### Draw the head table
if(isset($single))
{
echo "<TABLE BORDER=\"0\" cellspacing=\"1\" cellpadding=\"1\" align=\"center\">";
}
else
{
echo "<TABLE BORDER=\"0\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">";
}
echo "<tr>";
echo "<th bgcolor=\"#4C4C99\"><font color=\"white\" face=\"Arial,宋体\">类型</font></th>";
echo "<th bgcolor=\"#4C4C99\"><font color=\"white\" face=\"Arial,宋体\">名 称</font></th>";
echo "<th bgcolor=\"#4C4C99\"><font color=\"white\" face=\"Arial,宋体\">大小</font></th>";
echo "<th bgcolor=\"#4C4C99\"><font color=\"white\" face=\"Arial,宋体\">修改时间</font></th>";
echo "<th bgcolor=\"#4C4C99\"><font color=\"white\" face=\"Arial,宋体\">移改</font></th>";
echo "<th bgcolor=\"#4C4C99\"><font color=\"white\" face=\"Arial,宋体\">操 作</font></th>";
echo "</tr>";
################## Load directory into array
if(!isset($single))
{
chdir($basedir . $wdir);
$handle=opendir(".");
while ($file = readdir($handle))
{
if(is_dir($file)) $dirlist[] = $file;
}
closedir($handle);
############### List directories first
if($dirlist)
{
############### Sort alphabetically
asort($dirlist);
############### Walk through array
while (list ($key, $file) = each ($dirlist))
{
################## Skip the tiresome "."
if (!($file == "."))
{
$filename=$basedir.$wdir.$file;
$fileurl=rawurlencode($wdir.$file);
$lastchanged = filectime($filename);
$changeddate = date("Y-d-m H:i:s", $lastchanged);
echo "<TR>";
############### Print PARENT arrow
if($file == "..")
{
$downdir = dirname("$wdir");
echo "<TD align=\"center\" nobreak><A HREF=\"$PHP_SELF?action=chdr&file=$downdir\"><img src=\"./images/parent.gif\" alt=\"返回上一级目录(文件夹)\" border=\"0\" width=\"20\" height=\"16\"></a></TD>\n";
echo "<TD></TD>\n";
echo "<TD align=\"right\" nobreak><font size =\"-1\" face=\"Arial,宋体\">" . display_size($filename) . "</font></TD>";
echo "<TD align=\"right\" nobreak><font size =\"-1\" face=\"Arial,宋体\">" . $changeddate . "</font></TD><TD align=\"right\">";
#########printf("%o", (fileperms($filename)) & 0777);
echo "</TD><TD nobreak>";
echo "<A HREF=\"$PHP_SELF?action=chdr&file=$downdir\"><img src=\"./images/parent.gif\" alt=\"Parent directory\" border=\"0\" width=\"20\" height=\"16\"></A> ";
}
############### List the directory
else
{
$lastchanged = filectime($filename);
echo "<TD align=\"center\" nobreak><A HREF=\"$PHP_SELF?action=chdr&file=$fileurl\"><img src=\"./images/folder.gif\" alt=\"改变工作文件夹到 $file\" border=\"0\" width=\"15\" height=\"13\"></a></TD>\n";
echo "<TD nobreak><font size =\"-1\" face=\"Arial,宋体\">" . htmlspecialchars($file) . "</font></TD>\n";
echo "<TD align=\"right\" nobreak><font size =\"-1\" face=\"Arial,宋体\">" . display_size($filename) . "</font></TD>";
echo "<TD align=\"right\" nobreak><font size =\"-1\" face=\"Arial,宋体\">" . $changeddate . "</font></TD><TD align=\"right\">";
########echo "<A HREF=\"$PHP_SELF?action=chmod&file=$filename\" title=\"改变 $file 的权限级别\"><font size =\"-1\" face=\"Arial,宋体\">";
########printf("%o", (fileperms($filename)) & 0777);
########echo "</A>";
echo "</font></TD><TD nobreak>";
############### Move directory?
if($allow_move == "yes")
{
echo " <A HREF=\"$PHP_SELF?action=move&wdir=$wdir&file=$fileurl\"><img src=\"./images/move.gif\" alt=\"改名 $file\" border=\"0\" width=\"15\" height=\"15\"></A> ";
}
############### Touch directory?
if($allow_touch == "yes")
{
echo " <A HREF=\"$PHP_SELF?action=touch&wdir=$wdir&touchfile=$fileurl\"><img src=\"./images/touch.gif\" alt=\"Touch $file\" border=\"0\" width=\"12\" height=\"16\"></A> ";
}
############### Delete directory?
if($allow_delete == "yes")
{
echo "<A HREF=\"$PHP_SELF?action=del&wdir=$wdir&file=$fileurl\"><img src=\"./images/delete.gif\" alt=\"删除 $file\" border=\"0\" width=\"20\" height=\"16\"></A> ";
}
}
}
}
}
list_files();
echo "</TD></TR>\n";
echo "</TABLE>";
############### Display forms for different actions
echo "<table border=\"0\" width=\"100%\">";
echo "<TR><TD colspan=\"2\"><hr></td>";
############### Upload file
if($allow_upload == "yes")
{
echo "<TR><TD><font size =\"-1\" face=\"Arial,宋体\">上传文件</font></td><td>";
echo "<FORM ENCTYPE=\"multipart/form-data\" METHOD=\"POST\" ACTION=\"$PHP_SELF\">";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"wdir\" VALUE=\"$wdir\">";
echo "<INPUT NAME=\"userfile\" TYPE=\"file\" size=\"40\">";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"upload\" VALUE=\"上传\"></TD></TR>";
echo "</FORM>";
}
############### Create directory
if($allow_create_dir == "yes")
{
echo "<FORM METHOD=\"POST\" ACTION=\"$PHP_SELF\">";
echo "<TR><TD><font size =\"-1\" face=\"Arial,宋体\">创建文件夹</font></td><td>";
echo "<INPUT TYPE=\"TEXT\" NAME=\"mkdirfile\" size=\"40\">";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"action\" VALUE=\"mkdir\">";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"wdir\" VALUE=\"$wdir\">";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"mkdir\" VALUE=\"创建\"></TD></TR>";
echo "</FORM>";
}
############### Create file
if($allow_create_file == "yes")
{
echo "<FORM METHOD=\"POST\" ACTION=\"$PHP_SELF\">";
echo "<TR><TD><font size =\"-1\" face=\"Arial,宋体\">创建文件</font></td><td>";
echo "<INPUT TYPE=\"TEXT\" NAME=\"file\" size=\"40\">";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"action\" VALUE=\"createfile\"> ";
echo "<input type=\"checkbox\" name=\"html\" value=\"yes\"><font size =\"2\" face=\"Arial,宋体\">(html 模板)</font> ";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"wdir\" VALUE=\"$wdir\">";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"createfile\" VALUE=\"创建\">";
echo "</TD></TR>";
echo "</FORM>";
}
echo "</TABLE>";
}
else
{
list_files();
}
}
#########################################################################################################
############### The user pressed CANCEL, set the $action to nothing
if($cancel) $action="";
############### User has entered .. as directory. Potential security breach. Deny access.
$regexp="\\.\\.";
if (ereg( $regexp, $file, $regs )| ereg( $regexp, $wdir,$regs ))
{
$lastaction = "错误:文件夹不可以包含 \"..\"";
html_header();
echo $html_ender;
exit;
}
############### Upload file
if($upload)
{
copy($userfile,$basedir.$wdir.$userfile_name);
$lastaction = "已经成功上传文件 $userfile_name 到文件夹 $wdir";
html_header();
displaydir();
echo $html_ender;
exit;
}
#########################################################################################################
############### Begin actions code
switch ($action)
{
#########################################################################################################
############### No $action variable? Display initial page
case "":
$lastaction = "文件夹列表";
html_header();
displaydir();
echo $html_ender;
break;
#########################################################################################################
############### Help
case "help":
$lastaction = "检查更新";
html_header();
if($updatecheck == yes)
{
############### Check to see if there is an update
$filename = "./webedit/webedit.dat";
$fd = fopen ($filename, "r");
$contents = fread ($fd, 1024);
fclose ($fd);
############### There is. Give the user information about this
if($version < $contents)
{
echo"<b>注意<br>";
echo"本管理系统发现一个可用的更新<br>";
echo"您现在使用的版本是$version, 而最新版本是 $contents 。<br>";
echo"你当前使用的版本已经过时了,为了安全起见,请访问 www.qdmz.com <a href=\"http://www.qdmz.com/\">网站</a> 下载新版</b><br>";
echo "如果你对本程序有什么好的意见或建议,请到这<A HREF=\"$PHP_SELF?action=bugreport\">提交</a>。";
echo"<hr>";
}
if ($version == $contents){
echo"您现在使用的版本$version 是最新版本,暂无更新或与吴朝晖联系索取最新版。<br>";
echo "如果你对本程序有什么好的意见或建议,请到这<A HREF=\"$PHP_SELF?action=bugreport\">提交</a>。";
}
if ($version > $contents){
echo"<b>注意</b><br>";
echo"您现在使用的程序版本$version 不是正版产品,为了安全起见,请访问 www.qdmz.com <a href=\"http://www.qdmz.com/\">网站</a> 下载最新正版</b><br>";
echo "如果你对本程序有什么好的意见或建议,请到这<A HREF=\"$PHP_SELF?action=bugreport\">提交</a>。";
}
}
echo $html_ender;
break;
#########################################################################################################
############### User pressed ROOT.. Change to root dir
case "root":
$wdir="/";
$lastaction = "返回根目录";
html_header();
displaydir();
echo $html_ender;
break;
#########################################################################################################
############### Display PHP env
case "env":
if($allow_display_env == "no")
{
$lastaction = $not_allowed;
html_header();
displaydir();
echo $html_ender;
}
else
{
$lastaction = "显示PHP环境变量";
html_header();
phpinfo();
echo $html_ender;
}
break;
#########################################################################################################
############### Change directory
case "chdr":
$wdir=$file."/";
$lastaction = "已改变当前目录到 $wdir";
html_header();
displaydir();
echo $html_ender;
break;
#########################################################################################################
############### Touch object (create a new timestamp)
case "touch":
if($allow_touch == "no")
{
$lastaction = $not_allowed;
html_header();
displaydir();
echo $html_ender;
}
else
{
touch($basedir.$touchfile);
$lastaction = "Touched $touchfile";
html_header();
displaydir();
echo $html_ender;
}
break;
#########################################################################################################
############### Bug report form
case "bugreport":
if ($send)
{
$lastaction = "BUG 意见或建议已提交,谢谢你。";
html_header();
mail("admin@qdmz.com","Bug report","Name: $name \nVersion: $version \n\nProblem: $problem");
echo "<h3><a href=\"$PHP_SELF?action=help&wdir=$wdir\">Back to help</a></h3>";
}
else
{
$lastaction = "BUG报告,意见或建议提交表格";
html_header();
?>
<table>
<form action="<? echo "$PHP_SELF?action=bugreport&wdir=$wdir&send=1"; ?>" method="POST">
<tr>
<td>您的名字:</td>
<td><input name="name" size="24" maxlength="30"></td>
</tr>
<tr>
<td>您的电子邮件:</td>
<td><input name="email" size="24" maxlength="30"></td>
</tr>
<tr>
<td>问题描述:</td>
<td><textarea name="problem" cols="30" rows="5"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Send"></td>
</tr>
</table>
<?
}
echo $html_ender;
break;
#########################################################################################################
############### Delete file or directory
case "del":
############### The user has comfirmed the deletion
if ($confirm)
{
############### Object is a directory
if(is_dir($basedir.$file))
{
kill_dir($basedir.$file);
if (rmdir($basedir.$file)) $lastaction = "目录 $file 已成功删除";
else $lastaction = "目录 $file 删除失败";
#######$result = @rmdir($basedir.$file);
######### if($result ==0)
########### {
######### $lastaction = "无法删除这个文件夹,必须是空文件夹才可以被删######除。";
######## }
}
############### Object is a file
else
{
unlink($basedir.$file);
$lastaction = "文件 $file 已删除";
}
html_header();
displaydir();
}
############### Prompt the user for confirmation
else
{
if($raw == "1")
{
$lastaction = "您真的要删除吗?<br><A HREF=\"$PHP_SELF?action=show&wdir=$wdir&file=$fileurl\" title=\"查看源文件\">$file</a>?";
}
elseif($image == "1")
{
$lastaction = "您真的要删除吗?<br><A HREF=\"$PHP_SELF?action=show&wdir=$wdir&file=$fileurl&image=$image\" title=\"查看这个图像\">$file</a>?";
}
else
{
$lastaction = "您真的要删除吗?<br>$file?";
}
html_header();
echo "<center><b><font size =\"5\" face=\"Arial,宋体\"><A HREF=\"$PHP_SELF?action=del&wdir=$wdir&file=$file&confirm=1\">YES!</A></font><br>";
echo "<p><font size =\"5\" face=\"Arial,宋体\"><A HREF=\"$PHP_SELF?wdir=$wdir\">NO!</A></font><br><b></center>";
}
echo $html_ender;
break;
#########################################################################################################
############### Change permission level
case "chmod":
############### The user has confirmed
if ($confirm)
{
$level = "0";
$level .= $owner;
$level .= $group;
$level .= $public;
$showlevel = $level;
$level=octdec($level);
chmod($basedir.$file,$level);
$lastaction = "文件 $file 的权限级别已改为 $showlevel";
html_header();
displaydir();
}
############### Prompt the user for confirmation
else
{
$lastaction = "改变文件 $file 的权限级别";
html_header();
echo "<font face=\"Arial,宋体\"><center><h4>Current level: ";
printf("%o", (fileperms($basedir.$file)) & 0777);
echo "</h4><FORM METHOD=\"POST\" ACTION=\"$PHP_SELF\">\n";
function selections($type) // type: 0 Owner, 1 Group, 2 Public
{
echo "<option value=\"0\""; if (substr($GLOBALS["perm"], $type, 1)=="0") echo "selected"; echo ">0 - 没有权限";
echo "<option value=\"1\""; if (substr($GLOBALS["perm"], $type, 1)=="1") echo "selected"; echo ">1 - 执行";
echo "<option value=\"2\""; if (substr($GLOBALS["perm"], $type, 1)=="2") echo "selected"; echo ">2 - 写入 ";
echo "<option value=\"3\""; if (substr($GLOBALS["perm"], $type, 1)=="3") echo "selected"; echo ">3 - 执行和写入";
echo "<option value=\"4\""; if (substr($GLOBALS["perm"], $type, 1)=="4") echo "selected"; echo ">4 - 读取";
echo "<option value=\"5\""; if (substr($GLOBALS["perm"], $type, 1)=="5") echo "selected"; echo ">5 - 执行和读取";
echo "<option value=\"6\""; if (substr($GLOBALS["perm"], $type, 1)=="6") echo "selected"; echo ">6 - 写入和读取";
echo "<option value=\"7\""; if (substr($GLOBALS["perm"], $type, 1)=="7") echo "selected"; echo ">7 - 写入、执行和读取";
echo "</select>";
}
$perm = sprintf ("%o", (fileperms($basedir.$file)) & 0777); // Definition of a variable containing the file permissions
echo "<p><h4>用户<br>";
echo "<select name=\"owner\">";
selections(0);
echo "<p>组<br>";
echo "<select name=\"group\">";
selections(1);
echo "<p>公众<br>";
echo "<select name=\"public\">";
selections(2);
echo "</h4>";
echo "<p>";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"confirm\" VALUE=\"改变\">\n";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"cancel\" VALUE=\"放弃\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"action\" VALUE=\"chmod\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"file\" VALUE=\"$file\">";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"wdir\" VALUE=\"$wdir\">";
echo "</FORM>";
echo "</center>";
}
echo $html_ender;
break;
#########################################################################################################
############### Move file
case "move":
############### The user has confirmed renaming/moving/copying of the object
if($confirm && $newfile)
{
############### The destination object exists
if(file_exists($basedir.$newfile))
{
$lastaction = "目标文件已经存在。";
}
else
{
if($do == copy)
{
copy($basedir.$file,$basedir.$newfile);
$lastaction = "复制完成\n$file → $newfile";
}
else
{
rename($basedir.$file,$basedir.$newfile);
$lastaction = "移动/改名完成\n$file → $newfile";
}
}
html_header();
displaydir();
echo $html_ender;
}
############### Prompt the user for destination name and action
else
{
if($object == "file")
{
if($raw == "1")
{
$lastaction = "移动、改名或者复制文件 <A HREF=\"$PHP_SELF?action=show&wdir=$wdir&file=$fileurl\" title=\"查看源文件\">$file</a>";
}
elseif($image == "1")
{
$lastaction = "移动、改名或者复制文件 <A HREF=\"$PHP_SELF?action=show&wdir=$wdir&file=$fileurl&image=$image\" title=\"查看图像\">$file</a>";
}
else
{
$lastaction = "移动、改名或者复制文件 $file";
}
html_header();
echo "<FORM METHOD=\"POST\" ACTION=\"$PHP_SELF\">\n";
echo "<select name=\"do\">";
echo "<option value=\"copy\">复制";
echo "<option value=\"move\">移动/改名";
echo "</select> ";
echo "($file)";
echo "<h4>↓</h4>";
echo "<INPUT TYPE=\"TEXT\" NAME=\"newfile\" value=\"$file\" size=\"40\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"wdir\" VALUE=\"$wdir\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"action\" VALUE=\"move\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"file\" VALUE=\"$file\">\n";
echo "<p>";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"confirm\" VALUE=\"确定\">\n";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"cancel\" VALUE=\"放弃\">\n";
echo "</FORM>";
echo $html_ender;
}
else
{
$lastaction = "改名 $file";
html_header();
echo "<FORM METHOD=\"POST\" ACTION=\"$PHP_SELF\">\n";
echo "<h4></h4>";
echo "$file";
echo "<h4>↓</h4>";
echo "<INPUT TYPE=\"TEXT\" NAME=\"newfile\" value=\"$file\" size=\"40\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"wdir\" VALUE=\"$wdir\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"action\" VALUE=\"move\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"file\" VALUE=\"$file\">\n";
echo "<p>";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"confirm\" VALUE=\"确定\">\n";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"cancel\" VALUE=\"放弃\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"do\" VALUE=\"移动\">\n";
echo "</FORM>";
echo $html_ender;
}
}
break;
#########################################################################################################
############### Edit file
case "edit":
############### Function for saving the file.
function savefile()
{
global $basedir;
global $file;
global $code;
html_header();
$fp=fopen($basedir.$file,"w");
fputs($fp,stripslashes($code));
fclose($fp);
}
function buttons()
{
global $file;
global $wdir;
echo "<center>";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"file\" VALUE=\"$file\">";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"action\" VALUE=\"edit\">";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"wdir\" VALUE=\"$wdir\">";
echo "<INPUT TYPE=\"RESET\" VALUE=\"重新加载\"> ";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"save\" VALUE=\"保存\"> ";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"saveexit\" VALUE=\"保存并返回\"> ";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"cancel\" VALUE=\"放弃并返回\"> ";
echo "</center><BR>\n";
}
############### The user is done editing. Return to main screen
if($saveexit)
{
$lastaction = "编辑 <a href=\"$file\" title=\"查看文件\">$file</a>";
savefile();
displaydir();
}
############### Save the file, but continue editing.
if($save)
{
$lastaction = "保存 <a href=\"$file\" title=\"查看文件\">$file</a>, 继续编辑.";
savefile();
echo "<FORM METHOD=\"POST\" ACTION=\"$PHP_SELF\">\n";
$fp=fopen($basedir.$file,"r");
$contents=fread($fp,filesize($basedir.$file));
echo "<TEXTAREA NAME=\"code\" rows=\"$textrows\" cols=\"$textcols\">\n";
echo htmlspecialchars($contents);
echo "</TEXTAREA><BR>\n";
echo "<center>";
buttons();
echo "</FORM>";
}
############### Display file in textarea
if($display)
{
if($raw == "1")
{
$lastaction = "编辑 <A HREF=\"$PHP_SELF?action=show&wdir=$wdir&file=$file&browse=$browse&raw=$raw&image=$image&fileurl=$fileurl\" title=\"查看源文件\">$file</a>";
}
elseif($image == "1")
{
$lastaction = "编辑 <A HREF=\"$PHP_SELF?action=show&wdir=$wdir&file=$fileurl&image=$image\" title=\"查看图像\">$file</a>";
}
else
{
$lastaction = "编辑 $file";
}
html_header();
echo "<FORM METHOD=\"POST\" ACTION=\"$PHP_SELF\">\n";
$fp=fopen($basedir.$file,"r");
$contents=fread($fp,filesize($basedir.$file));
echo "<TEXTAREA NAME=\"code\" rows=\"$textrows\" cols=\"$textcols\">\n";
echo htmlspecialchars($contents);
echo "</TEXTAREA><BR>\n";
buttons();
echo "</FORM>";
}
echo $html_ender;
break;
#########################################################################################################
############### Display file
case "show":
############### Display file in textformat
$filelocation = $wdir.$file;
$lastaction = "显示文件 $file";
html_header();
############### It is a picture, display it. The filename needs to be either relative to the current document, or an absolute filesystem path.
if($image == "1")
{
$size = GetImageSize($DOCUMENT_ROOT.$file);
echo "<center><img src=\"$file\" $size[3]></center>";
}
############### It is text, display it.
else
{
$single = "yes";
# displaydir();
echo"<hr><br>";
show_source($basedir.$file);
}
echo $html_ender;
break;
#########################################################################################################
############### Create directory
case "mkdir":
############### Is the action allowed?
if($allow_create_dir == "no")
{
$lastaction = $not_allowed;
html_header();
}
else
{
############### The directory already exists.
if(file_exists($basedir.$wdir.$mkdirfile))
{
$lastaction = "文件夹 $wdir$mkdirfile 已经存在。";
html_header();
}
############### Create directory
else
{
$lastaction = "文件夹 $wdir$mkdirfile 创建成功!";
html_header();
mkdir($basedir.$wdir.$mkdirfile,0755);
}
displaydir();
echo $html_ender;
}
break;
#########################################################################################################
############### Create file
case "createfile":
$filelocation = $wdir.$file;
############### The user is done editing. Return to main screen
if($done == "1")
{
$lastaction = "创建文件 $file";
html_header();
# if($convert == "yes")
# {
# $code = str_replace ("\n", "<BR>");
# }
$fp=fopen($basedir.$filelocation,"w");
fputs($fp,stripslashes($code));
fclose($fp);
displaydir();
}
############### Display a textarea that will be the file
else
{
############### The file allready exists
if(file_exists($basedir.$filelocation))
{
$lastaction = "文件 $file 已经存在。";
html_header();
displaydir();
}
############### Give the user a textarea to write the contents of file
else
{
$lastaction = "创建文件 $file";
html_header();
echo "<FORM METHOD=\"POST\" ACTION=\"$PHP_SELF\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"file\" VALUE=\"$file\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"action\" VALUE=\"createfile\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"wdir\" VALUE=\"$wdir\">\n";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"done\" VALUE=\"1\">\n";
echo "<TEXTAREA NAME=\"code\" rows=\"$textrows\" cols=\"$textcols\">\n";
############### The user selected to use a html template. Put it inside the textarea
if(isset($html))
{
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n\n";
echo "<html>\n";
echo "<head>\n";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">\n";
echo "<title>未命名</title>\n";
echo "</head>\n";
echo "<body>\n\n";
echo "</body>\n";
echo "</html>";
}
echo "</TEXTAREA><BR>\n";
echo "<center><INPUT TYPE=\"SUBMIT\" NAME=\"confirm\" VALUE=\"创建\">\n";
echo "<INPUT TYPE=\"SUBMIT\" NAME=\"cancel\" VALUE=\"取消\"><br>";
$ext = strrchr ( $file , "." );
if(!strcasecmp ($ext, ".txt"))
{
echo "<input type=\"checkbox\" name=\"convert\" value=\"yes\"><font size =\"-2\" face=\"Arial,宋体\">(将换行改为BR)</font> ";
}
echo "</center><BR>\n</FORM>";
}
}
echo $html_ender;
break;
}
function kill_dir($dir) {
$dirhandle=opendir($dir);
while($file_name=readdir($dirhandle)) {
if ($file_name!="." && $file_name!="..") {
if (is_dir("$dir/$file_name")) {
kill_dir($dir."/".$file_name);
rmdir("$dir/$file_name");
} else {
unlink("$dir/$file_name");
}
}
}
closedir($dirhandle);
}
?>
原来的一个在线文件管理系统源代码