function frame3() { global $islinux, $cmd_arg, $chmod_arg, $zip_dir, $fm_current_root, $cookie_cache_time; global $dir_dest, $current_dir, $dir_before; global $selected_file_list, $selected_dir_list, $old_name, $new_name; global $action, $or_by, $order_dir_list_by; if (!isset($order_dir_list_by)) { $order_dir_list_by = "1A"; setcookie("order_dir_list_by", $order_dir_list_by, time() + $cookie_cache_time, "/"); } elseif (strlen($or_by)) { $order_dir_list_by = $or_by; setcookie("order_dir_list_by", $or_by, time() + $cookie_cache_time, "/"); } html_header(); echo "<body>\n"; if ($action) { switch ($action) { case 1: // create dir if (strlen($cmd_arg)) { $cmd_arg = format_path($current_dir . $cmd_arg); if (!file_exists($cmd_arg)) { @mkdir($cmd_arg, 0755); @chmod($cmd_arg, 0755); reloadframe("parent", 2, "&ec_dir=" . $cmd_arg); } else { alert(et('FileDirExists') . "."); } } break; case 2: // create arq if (strlen($cmd_arg)) { $cmd_arg = $current_dir . $cmd_arg; if (!file_exists($cmd_arg)) { if ($fh = @fopen($cmd_arg, "w")) { @fclose($fh); } @chmod($cmd_arg, 0644); } else { alert(et('FileDirExists') . "."); } } break; case 3: // rename arq ou dir if (strlen($old_name) && strlen($new_name)) { rename($current_dir . $old_name, $current_dir . $new_name); if (is_dir($current_dir . $new_name)) { reloadframe("parent", 2); } } break; case 4: // delete sel if (strstr($current_dir, $fm_current_root)) { if (strlen($selected_file_list)) { $selected_file_list = explode("<|*|>", $selected_file_list); if (count($selected_file_list)) { for ($x = 0; $x < count($selected_file_list); $x++) { $selected_file_list[$x] = trim($selected_file_list[$x]); if (strlen($selected_file_list[$x])) { total_delete($current_dir . $selected_file_list[$x], $dir_dest . $selected_file_list[$x]); } } } } if (strlen($selected_dir_list)) { $selected_dir_list = explode("<|*|>", $selected_dir_list); if (count($selected_dir_list)) { for ($x = 0; $x < count($selected_dir_list); $x++) { $selected_dir_list[$x] = trim($selected_dir_list[$x]); if (strlen($selected_dir_list[$x])) { total_delete($current_dir . $selected_dir_list[$x], $dir_dest . $selected_dir_list[$x]); } } reloadframe("parent", 2); } } } break; case 5: // copy sel if (strlen($dir_dest)) { if (uppercase($dir_dest) != uppercase($current_dir)) { if (strlen($selected_file_list)) { $selected_file_list = explode("<|*|>", $selected_file_list); if (count($selected_file_list)) { for ($x = 0; $x < count($selected_file_list); $x++) { $selected_file_list[$x] = trim($selected_file_list[$x]); if (strlen($selected_file_list[$x])) { total_copy($current_dir . $selected_file_list[$x], $dir_dest . $selected_file_list[$x]); } } } } if (strlen($selected_dir_list)) { $selected_dir_list = explode("<|*|>", $selected_dir_list); if (count($selected_dir_list)) { for ($x = 0; $x < count($selected_dir_list); $x++) { $selected_dir_list[$x] = trim($selected_dir_list[$x]); if (strlen($selected_dir_list[$x])) { total_copy($current_dir . $selected_dir_list[$x], $dir_dest . $selected_dir_list[$x]); } } reloadframe("parent", 2); } } $current_dir = $dir_dest; } } break; case 6: // move sel if (strlen($dir_dest)) { if (uppercase($dir_dest) != uppercase($current_dir)) { if (strlen($selected_file_list)) { $selected_file_list = explode("<|*|>", $selected_file_list); if (count($selected_file_list)) { for ($x = 0; $x < count($selected_file_list); $x++) { $selected_file_list[$x] = trim($selected_file_list[$x]); if (strlen($selected_file_list[$x])) { total_move($current_dir . $selected_file_list[$x], $dir_dest . $selected_file_list[$x]); } } } } if (strlen($selected_dir_list)) { $selected_dir_list = explode("<|*|>", $selected_dir_list); if (count($selected_dir_list)) { for ($x = 0; $x < count($selected_dir_list); $x++) { $selected_dir_list[$x] = trim($selected_dir_list[$x]); if (strlen($selected_dir_list[$x])) { total_move($current_dir . $selected_dir_list[$x], $dir_dest . $selected_dir_list[$x]); } } reloadframe("parent", 2); } } $current_dir = $dir_dest; } } break; case 71: // compress sel if (strlen($cmd_arg)) { ignore_user_abort(true); ini_set("display_errors", 0); ini_set("max_execution_time", 0); $zipfile = false; if (strstr($cmd_arg, ".tar")) { $zipfile = new tar_file($cmd_arg); } elseif (strstr($cmd_arg, ".zip")) { $zipfile = new zip_file($cmd_arg); } elseif (strstr($cmd_arg, ".bzip")) { $zipfile = new bzip_file($cmd_arg); } elseif (strstr($cmd_arg, ".gzip")) { $zipfile = new gzip_file($cmd_arg); } if ($zipfile) { $zipfile->set_options(array('basedir' => $current_dir, 'overwrite' => 1, 'level' => 3)); if (strlen($selected_file_list)) { $selected_file_list = explode("<|*|>", $selected_file_list); if (count($selected_file_list)) { for ($x = 0; $x < count($selected_file_list); $x++) { $selected_file_list[$x] = trim($selected_file_list[$x]); if (strlen($selected_file_list[$x])) { $zipfile->add_files($selected_file_list[$x]); } } } } if (strlen($selected_dir_list)) { $selected_dir_list = explode("<|*|>", $selected_dir_list); if (count($selected_dir_list)) { for ($x = 0; $x < count($selected_dir_list); $x++) { $selected_dir_list[$x] = trim($selected_dir_list[$x]); if (strlen($selected_dir_list[$x])) { $zipfile->add_files($selected_dir_list[$x]); } } } } $zipfile->create_archive(); } unset($zipfile); } break; case 72: // decompress arq if (strlen($cmd_arg)) { if (file_exists($current_dir . $cmd_arg)) { $zipfile = false; if (strstr($cmd_arg, ".zip")) { zip_extract(); } elseif (strstr($cmd_arg, ".bzip") || strstr($cmd_arg, ".bz2") || strstr($cmd_arg, ".tbz2") || strstr($cmd_arg, ".bz") || strstr($cmd_arg, ".tbz")) { $zipfile = new bzip_file($cmd_arg); } elseif (strstr($cmd_arg, ".gzip") || strstr($cmd_arg, ".gz") || strstr($cmd_arg, ".tgz")) { $zipfile = new gzip_file($cmd_arg); } elseif (strstr($cmd_arg, ".tar")) { $zipfile = new tar_file($cmd_arg); } if ($zipfile) { $zipfile->set_options(array('basedir' => $current_dir, 'overwrite' => 1)); $zipfile->extract_files(); } unset($zipfile); reloadframe("parent", 2); } } break; case 8: // delete arq/dir if (strlen($cmd_arg)) { if (file_exists($current_dir . $cmd_arg)) { total_delete($current_dir . $cmd_arg); } if (is_dir($current_dir . $cmd_arg)) { reloadframe("parent", 2); } } break; case 9: // CHMOD if (strlen($chmod_arg) == 4 && strlen($current_dir)) { if ($chmod_arg[0] == "1") { $chmod_arg = "0" . $chmod_arg; } else { $chmod_arg = "0" . substr($chmod_arg, strlen($chmod_arg) - 3); } $new_mod = octdec($chmod_arg); if (strlen($selected_file_list)) { $selected_file_list = explode("<|*|>", $selected_file_list); if (count($selected_file_list)) { for ($x = 0; $x < count($selected_file_list); $x++) { $selected_file_list[$x] = trim($selected_file_list[$x]); if (strlen($selected_file_list[$x])) { @chmod($current_dir . $selected_file_list[$x], $new_mod); } } } } if (strlen($selected_dir_list)) { $selected_dir_list = explode("<|*|>", $selected_dir_list); if (count($selected_dir_list)) { for ($x = 0; $x < count($selected_dir_list); $x++) { $selected_dir_list[$x] = trim($selected_dir_list[$x]); if (strlen($selected_dir_list[$x])) { @chmod($current_dir . $selected_dir_list[$x], $new_mod); } } } } } break; } if ($action != 10) { dir_list_form(); } } else { dir_list_form(); } echo "</body>\n</html>"; }
function total_delete($arg) { global $error, $inform; if (file_exists($arg)) { @chmod($arg, 0755); if (is_dir($arg)) { $handle = opendir($arg); while ($aux = readdir($handle)) { if ($aux != "." && $aux != "..") { total_delete($arg . "/" . $aux); } } @closedir($handle); if (@rmdir($arg)) { $inform[] = "{$arg} - удален\n"; } else { $error[] = "Невозможно удалить {$arg}\n"; } } else { if (@unlink($arg)) { $inform[] = "{$arg} - удален\n"; } else { $error[] = "Невозможно удалить {$arg}\n"; } } } }