You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

215 lines
9.3 KiB

<?php
require "config.php";
if (!isset($_REQUEST['type'])) {
header("Location: ./404.php");
exit;
} elseif (($type = trim($_REQUEST['type'])) == "") {
header("Location: ./404.php");
exit;
}
if (!isset($_GET['gopath'])) {
$gopath = OPEN;
} else {
$gopath = ___realpath(trim($_GET['gopath']));
}
if (!isset($_GET['getcwd'])) {
$getcwd = $gopath;
} else {
$getcwd = ___realpath(trim($_GET['getcwd']));
}
if ($type == "list") {
header("Location: ./flist.php?getcwd=" . urlencode($getcwd));
exit;
} elseif ($type == "create") {
header("Location: ./create.php?getcwd=" . urlencode($getcwd));
exit;
} elseif ($type == "upload") {
header("Location: ./upload.php?getcwd=" . urlencode($getcwd));
exit;
} elseif ($type == "addlist") {
if (isset($_POST['flist'])) if (count($_POST['flist']) > 0) {
if (!isset($_SESSION['flist'])) $_SESSION['flist'] = array();
$_SESSION['flist'] = array_filter(array_unique(array_merge($_SESSION['flist'], array_map('urldecode', $_POST['flist']))));
usort($_SESSION['flist'], "___sortcmp");
}
header("Location: ./flist.php?getcwd=" . urlencode($getcwd));
exit;
} elseif ($type == "unzipdir") {
if (isset($_SESSION['ffpath'])) if (!is_dir($_SESSION['ffpath'])) {
header("Location: ./unzip.php?path=" . urlencode($_SESSION['ffpath']) . "&unzipdir=" . urlencode($getcwd));
exit;
}
header("Location: ./404.php");
exit;
} elseif ($type == "unpackdir") {
if (isset($_SESSION['ffpath'])) if (!is_dir($_SESSION['ffpath'])) {
header("Location: ./file.php?path=" . urlencode($_SESSION['ffpath']) . "&unpackdir=" . urlencode($getcwd));
exit;
}
header("Location: ./404.php");
exit;
} elseif ($type == "shell_exec") {
header("Location: ./shell.php?getcwd=" . urlencode($getcwd));
exit;
}
if (isset($_POST['flist'])) {
if (!is_array($_POST['flist'])) {
$_SESSION['flist'] = array();
} else {
$_SESSION['flist'] = array_map('urldecode', $_POST['flist']);
}
} elseif (!isset($_SESSION['flist'])) {
$_SESSION['flist'] = array();
}
switch ($type) {
case "move" :
xhtml_head("批量移动");
if (count($_SESSION['flist']) < 1) {
echo "<div class=\"error\">\n";
echo "[<a href=\"./index.php?path=" . urlencode($getcwd) . "\">返回</a>]抱歉,没有文件列表!\n";
echo "</div>\n";
} else {
echo "<div class=\"like\">\n";
echo "<a href=\"./index.php?path=" . urlencode($getcwd) . "&multiple=$type\">选择路径</a>(目标目录)\n";
echo "</div>\n";
echo "<div class=\"love\">\n";
echo "<form action=\"move.php\" method=\"GET\">\n";
echo "<input type=\"text\" name=\"gopath\" value=\"$getcwd\" />\n";
echo "<input type=\"hidden\" name=\"getcwd\" value=\"$getcwd\" />\n";
echo "<input type=\"submit\" value=\"GO\" />\n";
echo "</form>\n";
echo "</div>\n";
echo "<div class=\"like\">文件清单(选择列表)</div>\n";
for ($i = 0; $i < count($_SESSION['flist']); $i++) {
echo "<div class=\"love\">[$i]&ensp;-&ensp;{$_SESSION['flist'][$i]}</div>\n";
}
}
xhtml_footer();
break;
case "copy" :
xhtml_head("批量复制");
if (count($_SESSION['flist']) < 1) {
echo "<div class=\"error\">\n";
echo "[<a href=\"./index.php?path=" . urlencode($getcwd) . "\">返回</a>]抱歉,没有文件列表!\n";
echo "</div>\n";
} else {
echo "<div class=\"like\">\n";
echo "<a href=\"./index.php?path=" . urlencode($getcwd) . "&multiple=$type\">选择路径</a>(目标目录)\n";
echo "</div>\n";
echo "<div class=\"love\">\n";
echo "<form action=\"copy.php\" method=\"GET\">\n";
echo "<input type=\"text\" name=\"gopath\" value=\"$getcwd\" />\n";
echo "<input type=\"hidden\" name=\"getcwd\" value=\"$getcwd\" />\n";
echo "<input type=\"submit\" value=\"GO\" />\n";
echo "</form>\n";
echo "</div>\n";
echo "<div class=\"like\">文件清单(选择列表)</div>\n";
for ($i = 0; $i < count($_SESSION['flist']); $i++) {
echo "<div class=\"love\">[$i]&ensp;-&ensp;{$_SESSION['flist'][$i]}</div>\n";
}
}
xhtml_footer();
break;
case "pkzip" :
xhtml_head("压缩文件");
if (count($_SESSION['flist']) < 1) {
echo "<div class=\"error\">\n";
echo "[<a href=\"./index.php?path=" . urlencode($getcwd) . "\">返回</a>]抱歉,没有文件列表!\n";
echo "</div>\n";
} else {
if (($zpath = ___realpath($getcwd)) == "/") {
$zpath = $zpath .= "archive.zip";
} else {
$zpath = $zpath .= "/archive.zip";
}
echo "<div class=\"like\">\n";
echo "<a href=\"./index.php?path=" . urlencode($getcwd) . "&multiple=$type\">存放目录</a>(归档路径)\n";
echo "</div>\n";
echo "<div class=\"love\">\n";
echo "<form action=\"pkzip.php\" method=\"GET\">\n";
echo "<input type=\"text\" name=\"gopath\" value=\"$zpath\" />\n";
echo "<input type=\"hidden\" name=\"getcwd\" value=\"$getcwd\" />\n";
echo "<input type=\"submit\" value=\"GO\" />\n";
echo "</form>\n";
echo "</div>\n";
echo "<div class=\"like\">文件清单(选择列表)</div>\n";
for ($i = 0; $i < count($_SESSION['flist']); $i++) {
echo "<div class=\"love\">[$i]&ensp;-&ensp;{$_SESSION['flist'][$i]}</div>\n";
}
}
xhtml_footer();
break;
case "chmod" :
xhtml_head("批量改权");
if (count($_SESSION['flist']) < 1) {
echo "<div class=\"error\">\n";
echo "[<a href=\"./index.php?path=" . urlencode($getcwd) . "\">返回</a>]抱歉,没有文件列表!\n";
echo "</div>\n";
} else {
echo "<div class=\"like\">\n";
echo "<a href=\"./index.php?path=" . urlencode($getcwd) . "\">文件列表</a>(返回浏览)\n";
echo "</div>\n";
echo "<div class=\"love\">\n";
echo "<form action=\"chmod.php\" method=\"GET\">\n";
echo "递归权限:<input type=\"radio\" name=\"recursive\" value=\"on\" checked />开启\n";
echo "<input type=\"radio\" name=\"recursive\" value=\"off\" />关闭\n<br />\n";
echo "目录权限:<input type=\"text\" name=\"dirperms\" value=\"0755\" />\n";
echo "<br />\n文件权限:<input type=\"text\" name=\"fileperms\" value=\"0644\" />\n";
echo "<input type=\"hidden\" name=\"getcwd\" value=\"$getcwd\" />\n";
echo "<br />\n<input type=\"submit\" value=\"GO\" />\n";
echo "</form>\n";
echo "</div>\n";
echo "<div class=\"like\">文件清单(选择列表)</div>\n";
for ($i = 0; $i < count($_SESSION['flist']); $i++) {
echo "<div class=\"love\">[$i]&ensp;-&ensp;{$_SESSION['flist'][$i]}</div>\n";
}
}
xhtml_footer();
break;
case "delete";
xhtml_head("批量删除");
if (count($_SESSION['flist']) < 1) {
echo "<div class=\"error\">\n";
echo "[<a href=\"./index.php?path=" . urlencode($getcwd) . "\">返回</a>]抱歉,没有文件列表!\n";
echo "</div>\n";
} else {
echo "<div class=\"love\">\n";
echo "[<a href=\"./index.php?path=" . urlencode($getcwd) . "\">返回</a>]\n";
echo "此操作不可逆,<a href=\"./delete.php?getcwd=" . urlencode($getcwd) . "\">确认删除</a>?\n";
echo "</div>\n";
echo "<div class=\"like\">文件清单(选择列表)</div>\n";
for ($i = 0; $i < count($_SESSION['flist']); $i++) {
echo "<div class=\"love\">[$i]&ensp;-&ensp;{$_SESSION['flist'][$i]}</div>\n";
}
}
xhtml_footer();
break;
case "sendfile" :
xhtml_head("文件发送");
if (count($_SESSION['flist']) < 1) {
echo "<div class=\"error\">\n";
echo "[<a href=\"./index.php?path=" . urlencode($getcwd) . "\">返回</a>]抱歉,没有文件列表!\n";
echo "</div>\n";
} else {
echo "<div class=\"like\">\n";
echo "<a href=\"./index.php?path=" . urlencode($getcwd) . "\">返回目录</a>(接收邮箱)\n";
echo "</div>\n";
echo "<div class=\"love\">\n";
echo "<form action=\"mail.php\" method=\"GET\">\n";
echo "<input type=\"text\" name=\"mail\" />\n";
echo "<input type=\"hidden\" name=\"getcwd\" value=\"$getcwd\" />\n";
echo "<input type=\"submit\" value=\"GO\" />\n";
echo "</form>\n";
echo "</div>\n";
echo "<div class=\"like\">文件清单(选择列表)</div>\n";
for ($i = 0; $i < count($_SESSION['flist']); $i++) {
echo "<div class=\"love\">[$i]&ensp;-&ensp;{$_SESSION['flist'][$i]}</div>\n";
}
}
xhtml_footer();
break;
default :
header("Location: ./404.php");
exit;
}
?>