phpcp/multiple.php

216 lines
9.3 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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;
}
?>