1) {
return round($result / 1048576, 1)." MB";
} elseif($result / 1024 > 1) {
return round($result / 1024, 0)." kB";
} else {
return round($result, 0)." bytes";
}
}
function format_date ($filename) {
return date("d-m-Y, H:i", filemtime($filename));
}
function file_extension($filename) {
$path_info = pathinfo($filename);
return $path_info["extension"];
}
function file_icon($filename) {
$ext = strtolower(file_extension($filename));
if (preg_match("/(jpg)|(jpeg)|(png)|(bmp)|(gif)|(ico){1}$/", $ext)) return "
";
if (preg_match("/(txt)|(htm)|(html)|(js)|(php)|(css)|(cgi){1}$/", $ext)) return "
";
if (preg_match("/(zip)|(rar)|(tar)|(gz){1}$/", $ext)) return "
";
if (preg_match("/(enc){1}$/", $ext)) return "
";
else
return "
";
}
function str_replace_case_insensitive($search, $replace, $subject) {
$result = "";
$i=0;
while($i= 0) {
$result[0] += $handlesize[0];
$result[1] += $handlesize[1];
$result[2] += $handlesize[2];
} else {
return -1;
}
}
}
}
closedir($handle);
}
return $result;
}
function recursive_remove_directory($directory, $empty=FALSE) {
if(substr($directory,-1) == "/") {
$directory = substr($directory,0,-1);
}
if(!file_exists($directory) || !is_dir($directory)) {
return FALSE;
} elseif(is_readable($directory)) {
$handle = opendir($directory);
while (FALSE !== ($item = readdir($handle))) {
if($item != "." && $item != "..") {
$path = $directory."/".$item;
if(is_dir($path)) {
recursive_remove_directory($path);
} else {
unlink($path);
}
}
}
closedir($handle);
if($empty == FALSE) {
if(!rmdir($directory)) {
return FALSE;
}
}
}
return TRUE;
}
function print_list_td ($text, $align) {
echo "".$text." | ";
echo " | ";
}
function print_parent_dir ($dir) {
echo "";
print_list_td ("
", "left");
print_list_td ("Back", "left");
echo "
";
}
function print_parent_dir_compact ($dir) {
echo "
";
echo "Back
";
}
function print_dir ($path, $searchresult) {
echo "";
print_list_td ("
", "left");
print_list_td ("".$searchresult."", "left");
print_list_td (format_date($path.$searchresult), "left");
print_list_td ("--", "right");
print_list_td ("Info", "left");
print_list_td ("Rename", "left");
print_list_td ("Delete", "left");
echo "
";
}
function print_dir_compact ($path, $searchresult) {
echo "
";
echo "".$searchresult."
";
echo "Info ";
echo "Rename ";
echo "Delete
";
}
function print_file ($path, $searchresult) {
echo "";
print_list_td (file_icon($searchresult), "left");
print_list_td ("".$searchresult."", "left");
print_list_td (format_date($path.$searchresult), "left");
print_list_td (format_size(filesize($path.$searchresult)), "right");
print_list_td ("Info", "left");
print_list_td ("Rename", "left");
print_list_td ("Delete", "left");
//$ext = strtolower(file_extension($searchresult));
//if (preg_match("/(txt)|(htm)|(html)|(js)|(php)|(css)|(cgi){1}$/", $ext)) print_list_td ("Edit", "left");
print_list_td ("Edit", "left");
print_list_td ("Crypt", "left");
echo "
";
}
function print_file_compact ($path, $searchresult) {
echo file_icon($searchresult)." ";
echo "".$searchresult."
";
echo "Info ";
echo "Rename ";
echo "Delete ";
//$ext = strtolower(file_extension($searchresult));
//if (preg_match("/(txt)|(htm)|(html)|(js)|(php)|(css)|(cgi){1}$/", $ext)) echo "Edit";
echo "Edit ";
echo "Crypt";
echo "
";
}
function print_input_form ($text, $type, $name, $value, $button, $action, $path) {
echo "";
}
function print_login_form ($text, $type, $name, $value, $button, $action) {
echo "";
}
function print_upload_form ($text, $name, $button, $action, $path) {
echo "";
}
function print_confirmation_form ($text, $button, $action, $path) {
echo "";
}
function print_edit_form ($content, $filename, $action, $path) {
echo "";
}
function print_redirect ($address) {
echo "...";
echo "";
}
echo "Files
";
if (isset($_SESSION["input_password"])) {
$viewtype = $_SESSION["select_viewtype"];
if ($cmd == "save") {
$content = $_POST["input_editor"];
$content = stripslashes($content);
write_file ($path.$filename, $content);
print_redirect($_SERVER["PHP_SELF"]."?path=".$path);
}
elseif ($cmd == "create") {
print_input_form ("File to create: ", "text", "input_newfilename", "", "OK", $_SERVER["PHP_SELF"]."?cmd=create_execute&path=".$path, $path);
}
elseif ($cmd == "create_execute") {
$filename = $_POST["input_newfilename"];
if (preg_match("/[^a-zA-Z0-9 ()-._]/", $filename)) {
print_input_form ("File to create: ", "text", "input_newfilename", "", "OK", $_SERVER["PHP_SELF"]."?cmd=create_execute&path=".$path, $path);
echo "Filename contains invalid characters.";
} elseif (file_exists($path.$filename)) {
create_file ($path."TMP");
print_confirmation_form ("Filename ".$filename." already exists. Overwrite?", "OK", $_SERVER["PHP_SELF"]."?cmd=overwrite&path=".$path."&filename=".$filename, $path);
} else {
create_file ($path.$filename);
print_redirect($_SERVER["PHP_SELF"]."?path=".$path);
}
}
elseif ($cmd == "createdir") {
print_input_form ("Directory to create: ", "text", "input_newdirname", "", "OK", $_SERVER["PHP_SELF"]."?cmd=createdir_execute&path=".$path, $path);
}
elseif ($cmd == "createdir_execute") {
$filename = $_POST["input_newdirname"];
if (preg_match("/[^a-zA-Z0-9 ()-._]/", $filename)) {
print_input_form ("Directory to create: ", "text", "input_newdirname", "", "OK", $_SERVER["PHP_SELF"]."?cmd=createdir_execute&path=".$path, $path);
echo "Filename contains invalid characters.";
} elseif (file_exists($path.$filename)) {
mkdir($path."TMP", 0777);
chmod ($path.$filename, 0777);
print_confirmation_form ("Directory name ".$filename." already exists. Overwrite?", "OK", $_SERVER["PHP_SELF"]."?cmd=overwrite&path=".$path."&filename=".$filename, $path);
} else {
mkdir($path.$filename, 0777);
chmod ($path.$filename, 0777);
print_redirect($_SERVER["PHP_SELF"]."?path=".$path);
}
}
elseif ($cmd == "upload") {
print_upload_form ("File to upload: ", "userfile", "OK", $_SERVER["PHP_SELF"]."?cmd=upload_execute&path=".$path, $path);
}
elseif ($cmd == "upload_execute") {
$userfile_name = $_FILES["userfile"]["name"];
$userfile = $_FILES["userfile"]["tmp_name"];
if (preg_match("/[^a-zA-Z0-9 ()-._]/", $userfile_name)) {
print_upload_form ("File to upload: ", "userfile", "OK", $_SERVER["PHP_SELF"]."?cmd=upload_execute&path=".$path, $path);
echo "Filename contains invalid characters.";
} elseif ($userfile_name == "") {
print_upload_form ("File to upload: ", "userfile", "OK", $_SERVER["PHP_SELF"]."?cmd=upload_execute&path=".$path, $path);
echo "No file selected.";
} elseif (file_exists($path.$userfile_name)) {
@move_uploaded_file($userfile, $path."TMP") or die ("Error uploading ".$userfile_name.".");
chmod ($path."TMP", 0777);
print_confirmation_form ("Filename ".$userfile_name." already exists. Overwrite?", "OK", $_SERVER["PHP_SELF"]."?cmd=overwrite&path=".$path."&filename=".$userfile_name, $path);
} else {
@move_uploaded_file($userfile, $path.$userfile_name) or die ("Error uploading ".$userfile_name.".");
chmod ($path.$userfile_name, 0777);
print_redirect($_SERVER["PHP_SELF"]."?path=".$path);
}
}
elseif ($cmd == "changedir") {
print_input_form ("Change to directory: ", "text", "input_changedir", $path, "OK", $_SERVER["PHP_SELF"]."?cmd=changedir_execute&path=".$path, $path);
}
elseif ($cmd == "changedir_execute") {
$path = $_POST["input_changedir"];
if (is_dir($path)) {
print_redirect($_SERVER["PHP_SELF"]."?path=".$path);
} else {
print_input_form ("Change to directory: ", "text", "input_changedir", $path, "OK", $_SERVER["PHP_SELF"]."?cmd=changedir_execute&path=".$path, $path);
echo "Invalid directory.";
}
}
elseif ($cmd == "opendir") {
if (is_dir($path)) {
print_redirect($_SERVER["PHP_SELF"]."?path=".$path);
}
}
elseif ($cmd == "logout") {
session_unset();
session_destroy();
print_redirect($_SERVER["PHP_SELF"]);
}
elseif ($cmd == "edit") {
if (file_exists($path.$filename)) {
if (filesize($path.$filename) == 0) {
$content = "";
print_edit_form ($content, $filename, $_SERVER["PHP_SELF"]."?cmd=save&path=".$path."&filename=".$filename, $path);
} else {
$content = read_file($path.$filename);
$content = str_replace_case_insensitive ("","<*textarea>", $content);
print_edit_form ($content, $filename, $_SERVER["PHP_SELF"]."?cmd=save&path=".$path."&filename=".$filename, $path);
}
}
}
elseif ($cmd == "overwrite") {
if (is_dir ($path.$filename)) {
@rmdir($path.$filename);
} else {
@unlink($path.$filename);
}
rename($path."TMP", $path.$filename);
chmod ($path.$filename, 0777);
print_redirect($_SERVER["PHP_SELF"]."?path=".$path);
}
elseif ($cmd == "rename") {
print_input_form ("Rename ".$filename." to: ", "text", "input_renamefilename", "", "OK", $_SERVER["PHP_SELF"]."?cmd=rename_execute&path=".$path."&filename=".$filename, $path);
}
elseif ($cmd == "rename_execute") {
$newfilename = $_POST["input_renamefilename"];
if (preg_match("/[^a-zA-Z0-9 ()-._]/", $newfilename)) {
print_input_form ("Rename ".$filename." to: ", "text", "input_renamefilename", "", "OK", $_SERVER["PHP_SELF"]."?cmd=rename_execute&path=".$path."&filename=".$filename, $path);
echo "Filename contains invalid characters.";
} elseif (file_exists($path.$newfilename)) {
print_input_form ("Rename ".$filename." to: ", "text", "input_renamefilename", "", "OK", $_SERVER["PHP_SELF"]."?cmd=rename_execute&path=".$path."&filename=".$filename, $path);
echo "Filename ".$newfilename." already exists.";
} else {
if (rename($path.$filename, $path.$newfilename)) {
print_redirect($_SERVER["PHP_SELF"]."?path=".$path);
}
}
}
elseif ($cmd == "del") {
print_confirmation_form ("Delete ".$filename."? ", "OK", $_SERVER["PHP_SELF"]."?cmd=del_execute&path=".$path."&filename=".$filename, $path);
}
elseif ($cmd == "del_execute") {
if (is_dir ($path.$filename)) {
@rmdir($path.$filename);
//Remove entire dir and everthing inside it
//recursive_remove_directory($path.$filename);
} else {
@unlink($path.$filename);
}
print_redirect($_SERVER["PHP_SELF"]."?path=".$path);
}
elseif ($cmd == "crypt") {
if (file_exists($path.$filename)) {
if (filesize($path.$filename) == 0) {
$content = "";
} else {
$content = read_file($path.$filename);
$content = encrypt($_SESSION["input_password"], $content);
}
}
write_file ($path.$filename, $content);
if (file_extension($path.$filename) != "enc") {
rename($path.$filename, $path.$filename.".enc");
} else {
rename($path.$filename, $path.substr($filename, 0, strlen($filename) - 4));
}
print_redirect($_SERVER["PHP_SELF"]."?path=".$path);
}
elseif ($cmd == "info") {
$fileinfo = recursive_directory_info($path.$filename);
echo "Name: ".$filename."
";
echo "Location: ".$path."
";
if (is_file($path.$filename)) {
echo "Type: File
";
echo "Size: ".format_size(filesize($path.$filename))." (".filesize($path.$filename)." bytes)
";
} else {
echo "Type: Directory
";
echo "Size: ".format_size($fileinfo[0])." (".$fileinfo[0]." bytes)
";
echo "Content: ".$fileinfo[1]." directories, ".$fileinfo[2]." files
";
}
echo "Date: ".date("d-m-Y, H:i", filemtime($path.$filename))."
";
echo "Owner: ".fileowner($path.$filename)."
";
echo "Group: ".filegroup($path.$filename)."
";
echo "Permissions: ".substr(sprintf('%o', fileperms($path.$filename)), -3)."
";
echo "Back";
}
elseif ($cmd == "phpinfo") {
phpinfo();
}
else {
if (is_dir($path)) {
if (file_exists($path."TMP")) {
@unlink($path."TMP");
}
echo "Create file ";
echo "Upload file ";
echo "Create directory ";
echo "Change directory ";
echo "Logout
";
echo $path."
";
$handle = opendir($path);
while (false != ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$searchresults[] = $file;
}
}
closedir($handle);
$dirs = 0;
$files = 0;
$totalsize = 0;
if(!empty($searchresults)){
natcasesort($searchresults);
if ($viewtype == 0) {
echo "";
if ($path != $basedir) print_parent_dir($path.$searchresult);
foreach ($searchresults as $searchresult) {
if (is_dir($path.$searchresult)) {
print_dir($path, $searchresult);
$dirs ++;
} else {
print_file($path, $searchresult);
$files ++;
$totalsize = $totalsize + filesize($path.$searchresult);
}
}
echo "
";
} else {
if ($path != $basedir) print_parent_dir_compact($path.$searchresult);
foreach ($searchresults as $searchresult) {
if (is_dir($path.$searchresult)) {
print_dir_compact($path, $searchresult);
$dirs ++;
} else {
print_file_compact($path, $searchresult);
$files ++;
$totalsize = $totalsize + filesize($path.$searchresult);
}
}
}
echo $dirs. " directories, ".$files." files, ".format_size($totalsize);
} else {
if ($viewtype == 0) {
echo "";
if ($path != $basedir) print_parent_dir($path.$searchresult);
echo "
";
echo "Empty directory.";
} else {
if ($path != $basedir) print_parent_dir_compact($path.$searchresult);
echo "Empty directory.";
}
}
} else {
echo "Invalid directory.";
}
}
} else {
if (!empty($_POST)) {
if ($password == crypt($_POST["input_password"], $password)) {
session_register("input_password");
session_register("select_viewtype");
print_redirect($_SERVER["PHP_SELF"]."?cmd=none");
} else {
print_login_form ("Password: ", "password", "input_password", "", "Login", $_SERVER["PHP_SELF"]);
echo "Invalid password.";
}
} else {
print_login_form ("Password: ", "password", "input_password", "", "Login", $_SERVER["PHP_SELF"]);
}
}
?>