function rename_go() { global $list, $options; $smthExists = FALSE; for ($i = 0; $i < count($_POST["files"]); $i++) { $file = $list[$_POST["files"][$i]]; if (file_exists($file["name"])) { $smthExists = TRUE; $newName = dirname($file["name"]) . PATH_SPLITTER . stripslashes(basename($_POST["newName"][$i])); $filetype = strrchr($newName, "."); if (is_array($options['forbidden_filetypes']) && in_array(strtolower($filetype), $options['forbidden_filetypes'])) { printf(lang(82), $filetype); echo "<br /><br />"; } else { if (@rename($file["name"], $newName)) { printf(lang(194), $file['name'], basename($newName)); echo "<br /><br />"; $list[$_POST["files"][$i]]["name"] = $newName; } else { printf(lang(202), $file['name']); echo "<br /><br />"; } } } else { printf(lang(145), $file['name']); echo "<br /><br />"; } } if ($smthExists) { if (!updateListInFile($list)) { echo lang(9) . "<br /><br />"; } } }
function md5_change_go() { global $list, $PHP_SELF; if (isset($_POST['yes'])) { foreach ($_POST['files'] as $k => $v) { $name = $list[$v]['name']; $html_name = htmlentities(basename($name)); if (file_exists($name)) { if (@write_file($name, chr(0), 0)) { clearstatcache(); printf(lang(381), $html_name); unset($list[$v]); $time = filemtime($name); while (isset($list[$time])) { $time++; } $list[$time] = array('name' => $name, "size" => bytesToKbOrMbOrGb(filesize($name)), "date" => $time); } else { printf(lang(382), $html_name); } } else { printf(lang(145), $html_name); } echo '<br />'; } if (!updateListInFile($list)) { echo lang(146) . "<br /><br />"; } } else { echo '<script type="text/javascript">location.href="' . $PHP_SELF . '?act=files";</script>'; } }
function delete_go() { global $list, $PHP_SELF; if (isset($_POST["yes"])) { for ($i = 0; $i < count($_POST["files"]); $i++) { $file = $list[$_POST["files"][$i]]; if (file_exists($file["name"])) { if (@unlink($file["name"])) { printf(lang(151), $file['name']); echo "<br />"; unset($list[$_POST["files"][$i]]); } else { printf(lang(152), $file['name']); echo "<br />"; } } else { unset($list[$_POST["files"][$i]]); printf(lang(145), $file['name']); echo "<br />"; } } if (!updateListInFile($list)) { echo lang(146) . "<br /><br />"; } } else { echo '<script type="text/javascript">location.href="' . $PHP_SELF . '?act=files";</script>'; } }
function delete_go() { global $list, $PHP_SELF, $L; if (isset($_POST["yes"])) { for ($i = 0; $i < count($_POST["files"]); $i++) { $file = $list[$_POST["files"][$i]]; if (file_exists($file["name"])) { if (@unlink($file["name"])) { echo $L->sprintf($L->say['_filedel'], htmlspecialchars(basename($file['name']))) . "<br /><br />"; unset($list[$_POST["files"][$i]]); } else { echo $L->sprintf($L->say['error_delete'], htmlspecialchars(basename($file['name']))) . "<br /><br />"; } } else { unset($list[$_POST["files"][$i]]); echo $L->sprintf($L->say['not_found'], htmlspecialchars(basename($file['name']))) . "<br />"; } } if (!updateListInFile($list)) { echo "<b class=\"r\">" . $L->say['error_upd_list'] . "</b><br /><br />"; } } else { echo '<script type="text/javascript">location.href="' . $PHP_SELF . '?act=files";</script>'; } }
function mrename_go() { global $list, $options, $PHP_SELF, $L; if ($_POST["yes"] && @trim($_POST['extension'])) { $_POST['extension'] = @trim($_POST['extension']); while ($_POST['extension'][0] == '.') { $_POST['extension'] = substr($_POST['extension'], 1); } if ($_POST[extension]) { for ($i = 0; $i < count($_POST["files"]); $i++) { $file = $list[$_POST["files"][$i]]; if (file_exists($file["name"])) { $filetype = '.' . strtolower($_POST['extension']); if (is_array($options['forbidden_filetypes']) && in_array('.' . strtolower($_POST['extension']), $options['forbidden_filetypes'])) { echo $L->sprintf($L->say['forbidden_rename'], $filetype) . '<br /><br />'; } else { if (@rename($file["name"], fixfilename($file["name"] . ".{$_POST['extension']}"))) { echo $L->sprintf($L->say['_renamed_to'] . '<br />', basename($file['name']), fixfilename(basename($file["name"] . ".{$_POST['extension']}"))); $list[$_POST["files"][$i]]["name"] .= '.' . $_POST['extension']; $list[$_POST["files"][$i]]["name"] = fixfilename($list[$_POST["files"][$i]]["name"]); } else { echo $L->sprintf($L->say['_error_ren'], basename($file['name'])) . '<br />'; } } } else { echo $L->sprintf($L->say['not_found'], basename($file['name'])) . '<br />'; } } if (!updateListInFile($list)) { echo "<b class=\"r\">" . $L->say['error_upd_list'] . "</b><br />"; } } } else { ?> <script type="text/javascript">location.href="<?php echo $PHP_SELF . "?act=files"; ?> ";</script> <?php } }
function unrar_go_go() { global $options, $list, $L; ?> <script type="text/javascript"> /* <![CDATA[ */ function rar_st(elementid, st){ document.getElementById(elementid).innerHTML = st; return true; } /* ]]> */ </script> <?php for ($i = 0; $i < count($_GET["files"]); $i++) { $file = $list[$_GET["files"][$i]]; if (count($_GET['filestounrar'][$i]) == 0) { continue; } foreach ($_GET['filestounrar'][$i] as $rar_item) { flush(); $rar = new rlRar($file["name"], $options['check_these_before_unzipping'] ? $options['forbidden_filetypes'] : array('.xxx')); if ($rar->rar_return === false) { ?> <script type="text/javascript">rar_st('<?php echo 'unrar' . $_GET["files"][$i] . '-' . str_replace('=', '-', $rar_item); ?> ', '<?php echo $L->say['rar_disappear']; ?> ');</script> <?php } else { $rar_result = $rar->extract(base64_decode($rar_item), $options['download_dir'], $_GET['passwords'][$i], 'unrar' . $_GET["files"][$i] . '-' . str_replace('=', '-', $rar_item), $i); echo $rar_result; if (strpos($rar_result, ", 'OK')") !== false) { _create_list(); $rar_tolist = realpath($options['download_dir']) . '/' . basename(base64_decode($rar_item)); $time = getNowzone(@filemtime($rar_tolist)); while (isset($list[$time])) { $time++; } $list[$time] = array("name" => $rar_tolist, "size" => bytesToKbOrMbOrGb(filesize($rar_tolist)), "date" => $time); if (!updateListInFile($list)) { ?> <script type="text/javascript">var tmp = document.getElementById('rar_finished'); tmp.innerHTML = "<?php echo $L->say['couldnt_upd_list']; ?> <br /><br />" + tmp.innerHTML</script>; <?php } } } } } ?> <script type="text/javascript">document.getElementById('unrar_finished').style.display = '';</script> <?php }
function merge_go() { global $list, $options; if (count($_POST["files"]) !== 1) { echo lang(167) . "<br /><br />"; } else { $file = $list[$_POST["files"][0]]; if (substr($file["name"], -4) == '.001' && is_file(substr($file["name"], 0, -4) . '.crc')) { echo lang(168) . "<br /><br />"; } elseif (substr($file["name"], -4) !== '.crc' && substr($file["name"], -4) !== '.001') { echo lang(169) . "<br /><br />"; } else { $usingcrcfile = substr($file["name"], -4) === '.001' ? false : true; if (!$usingcrcfile) { $data = array('filename' => basename(substr($file["name"], 0, -4)), 'size' => -1, 'crc32' => '00111111'); } else { $fs = @fopen($file["name"], "rb"); } if ($usingcrcfile && !$fs) { echo lang(178) . "<br /><br />"; } else { if ($usingcrcfile) { $data = array(); while (!feof($fs)) { $data_ = explode('=', trim(fgets($fs)), 2); $data[$data_[0]] = $data_[1]; } fclose($fs); } $path = realpath(DOWNLOAD_DIR) . PATH_SPLITTER; $filename = basename($data['filename']); $partfiles = array(); $partsSize = 0; for ($j = 1; $j < 10000; $j++) { if (!is_file($path . $filename . '.' . sprintf("%03d", $j))) { if ($j == 1) { $partsSize = -1; } break; } $partfiles[] = $path . $filename . '.' . sprintf("%03d", $j); $partsSize += filesize($path . $filename . '.' . sprintf("%03d", $j)); } if (file_exists($path . $filename)) { printf(lang(179), $path . $filename); echo "<br /><br />"; } elseif ($usingcrcfile && $partsSize != $data['size']) { echo lang(180) . "<br /><br />"; } elseif ($options['check_these_before_unzipping'] && is_array($options['forbidden_filetypes']) && in_array(strtolower(strrchr($filename, ".")), $options['forbidden_filetypes'])) { printf(lang(181), strrchr($filename, ".")); echo "<br /><br />"; } else { $merge_buffer_size = 2 * 1024 * 1024; $merge_dest = @fopen($path . $filename, "wb"); if (!$merge_dest) { printf(lang(182), $path . $filename); echo "<br /><br />"; } else { $merge_ok = true; foreach ($partfiles as $part) { $merge_source = @fopen($part, "rb"); while (!feof($merge_source)) { $merge_buffer = fread($merge_source, $merge_buffer_size); if ($merge_buffer === false) { printf(lang(65), $part); echo "<br /><br />"; $merge_ok = false; break; } if (fwrite($merge_dest, $merge_buffer) === false) { printf(lang(183), $path . $filename); echo "<br /><br />"; $merge_ok = false; break; } } fclose($merge_source); if (!$merge_ok) { break; } } fclose($merge_dest); if ($merge_ok) { $fc = $_POST['crc_mode'] == 'file_read' ? dechex(crc32(read_file($path . $filename))) : ($_POST['crc_mode'] == 'hash_file' && function_exists('hash_file') ? hash_file('crc32b', $path . $filename) : '111111'); $fc = str_repeat("0", 8 - strlen($fc)) . strtoupper($fc); if ($fc != strtoupper($data["crc32"])) { echo lang(184) . "<br /><br />"; } else { printf(lang(185), $filename); echo '!<br /><br />'; if ($usingcrcfile && $fc != '00111111' && $_POST["del_ok"] && !$options['disable_deleting']) { if ($usingcrcfile) { $partfiles[] = $file["name"]; } foreach ($partfiles as $part) { if (@unlink($part)) { foreach ($list as $list_key => $list_file) { if ($list_file["name"] === $part) { unset($list[$list_key]); } } echo "<b>" . basename($part) . "</b> " . lang(186) . ".<br />"; } else { echo "<b>" . basename($part) . "</b> " . lang(187) . ".<br />"; } } echo "<br />"; } $time = filemtime($path . $filename); while (isset($list[$time])) { $time++; } $list[$time] = array("name" => $path . $filename, "size" => bytesToKbOrMbOrGb($partsSize), "date" => $time); if (!updateListInFile($list)) { echo lang(146) . "<br /><br />"; } } } } } } } } }
function rename_go() { global $list, $options, $L; $smthExists = FALSE; for ($i = 0; $i < count($_POST["files"]); $i++) { $file = $list[$_POST["files"][$i]]; if (file_exists($file["name"])) { $smthExists = TRUE; $newName = dirname($file["name"]) . PATH_SPLITTER . stripslashes(basename($_POST["newName"][$i])); $rest = substr($newName, -1); if (!preg_match("/^[a-zA-Z0-9_]+\$/i", $rest)) { $alpnum = false; } else { $alpnum = true; } while (!$alpnum and strlen($newName) > 0) { $newName = substr($newName, 0, -1); $rest = substr($newName, -1); if (!preg_match("/^[a-zA-Z0-9_]+\$/i", $rest)) { $alpnum = false; } else { $alpnum = true; } } $filetype = strrchr($newName, "."); if (is_array($options['forbidden_filetypes']) && in_array(strtolower($filetype), $options['forbidden_filetypes'])) { echo $L->sprintf($L->say['forbidden_rename'], $filetype) . "<br /><br />"; } else { if (@rename($file["name"], $newName)) { echo $L->sprintf($L->say['_renamed_to'], htmlspecialchars($file["name"]), htmlspecialchars(basename($newName))) . "<br /><br />"; $list[$_POST["files"][$i]]["name"] = $newName; } else { echo $L->sprintf($L->say['couldnt_rename_to'], $file['name']) . "<br /><br />"; } } } else { echo $L->sprintf($L->say['not_found'], $file['name']) . "<br /><br />"; } } if ($smthExists) { if (!updateListInFile($list)) { echo $L->say['couldnt_upd'] . "<br /><br />"; } } }
function pack_go() { global $list, $options; $arc_name = basename($_POST["arc_name"] . '.' . $_POST["arc_ext"]); $saveTo = ($options['download_dir_is_changeable'] ? stripslashes($_POST["saveTo"][$i]) : realpath($options['download_dir'])) . '/'; $v_list = array(); if (!$_POST["arc_name"] || !$_POST["arc_ext"]) { echo lang(196) . "<br /><br />"; } elseif (file_exists($saveTo . $arc_name)) { printf(lang(179), $arc_name); echo "<br /><br />"; } else { for ($i = 0; $i < count($_POST["files"]); $i++) { $file = $list[$_POST["files"][$i]]; if (file_exists($file["name"])) { $v_list[] = $file["name"]; } else { printf(lang(145), $file['name']); echo "<br /><br />"; } } if (count($v_list) < 1) { echo lang(137) . "<br /><br />"; } else { $arc_name = $saveTo . $arc_name; require_once CLASS_DIR . "tar.php"; $tar = new Archive_Tar($arc_name); if ($tar->error != '') { echo $tar->error . "<br /><br />"; } else { $remove_path = realpath($options['download_dir']) . '/'; $tar->createModify($v_list, '', $remove_path); if (!file_exists($arc_name)) { echo lang(197) . "<br /><br />"; } else { if (count($v_list = $tar->listContent()) > 0) { for ($i = 0; $i < sizeof($v_list); $i++) { printf(lang(198), $v_list[$i]['filename']); echo " <br />"; } printf(lang(199), $arc_name); echo "<br />"; $stmp = strtolower($arc_name); $arc_method = "Tar"; if (!$options['disable_archive_compression']) { if (strrchr($stmp, "tar.gz") + 5 == strlen($stmp)) { $arc_method = "Tar.gz"; } elseif (strrchr($stmp, "tar.bz2") + 6 == strlen($stmp)) { $arc_method = "Tar.bz2"; } } unset($stmp); $time = explode(" ", microtime()); $time = str_replace("0.", $time[1], $time[0]); $list[$time] = array("name" => $arc_name, "size" => bytesToKbOrMbOrGb(filesize($arc_name)), "date" => $time, "link" => "", "comment" => "archive " . $arc_method); } else { echo lang(200) . "<br /><br />"; } if (!updateListInFile($list)) { echo lang(9) . '<br /><br />'; } } } } } }
function boxes_go() { global $list, $options, $fromaddr, $L; require_once CLASS_DIR . "mail.php"; $_POST["partSize"] = isset($_POST["partSize"]) & $_POST["split"] == "on" ? $_POST["partSize"] * 1024 * 1024 : FALSE; $v_mails = explode("\n", $_POST['emails']); $v_min = count(count($_POST["files"]) < count($v_mails) ? $_POST["files"] : $v_mails); for ($i = 0; $i < $v_min; $i++) { $file = $list[$_POST["files"][$i]]; $v_mail = trim($v_mails[$i]); if (!checkmail($v_mail)) { echo $L->sprintf($L->say['invalid_email_addr'], $v_mail) . "<br /><br />"; } elseif (file_exists($file["name"])) { if (xmail("{$fromaddr}", $v_mail, "File " . basename($file["name"]), "File: " . basename($file["name"]) . "\r\n" . "Link: " . $file["link"] . ($file["comment"] ? "\r\nComments: " . str_replace("\\r\\n", "\r\n", $file["comment"]) : ""), $file["name"], $_POST["partSize"], $_POST["method"])) { if ($_POST["del_ok"] && !$options['disable_to']['act_del']) { if (@unlink($file["name"])) { $v_ads = " " . $L->says['_and_del']; unset($list[$_POST["files"][$i]]); } else { $v_ads = ", " . $L->say['_but'] . " <b>" . $L->say['_not_del'] . "</b>"; } } else { $v_ads = " !"; } echo '<script type="text/javascript">' . "mail('File <b>" . basename($file["name"]) . "</b> it is sent for the address <b>" . $v_mail . "</b>" . $v_ads . "', '" . md5(basename($file["name"])) . "');</script>\r\n<br />"; } else { echo "<b class=\"r\">" . $L->say['error_send'] . "</b><br />"; } } else { echo $L->sprintf($L->say['not_found'], $file['name']) . "<br /><br />"; } } if (count($_POST["files"]) < count($v_mails)) { for ($i = count($_POST["files"]); $i < count($v_mails); $i++) { $v_mail = trim($v_mails[$i]); echo "{$v_mail}.</b><br /><br />"; } echo "</b><br />"; } elseif (count($_POST["files"]) > count($v_mails)) { for ($i = count($v_mails); $i < count($_POST["files"]); $i++) { $file = $list[$_POST["files"][$i]]; if (file_exists($file["name"])) { echo $file["name"] . "<br /><br />"; } else { echo $L->sprintf($L->say['not_found'], $file['name']) . "<br /><br />"; } } echo "<br />"; } if ($_POST["del_ok"]) { if (!updateListInFile($list)) { echo $L->say['error_upd_list'] . "<br /><br />"; } } }
$oldName = $fileName; $newName = str_replace("~", "", iconv("UTF-8", "ISO-8859-1//TRANSLIT", rawurldecode(base64_decode($partFN[1])))); $newName = dirname($oldName) . PATH_SPLITTER . $newName; $filetype = strrchr($newName, "."); if (is_array($options['forbidden_filetypes']) && in_array(strtolower($filetype), $options['forbidden_filetypes'])) { // ERROR echo "((suc))0((/suc))<msg>" . $L->sprintf($L->say['forbidden_rename'], $filetype) . "</msg>"; } else { if (@rename($oldName, $newName)) { $smthExists = TRUE; foreach ($list as $key => $file) { if ($file["name"] == $oldName) { $list[$key] = $lineset; $list[$key]["name"] = $newName; } } echo "((suc))1((/suc))<msg>" . $L->say['_file'] . " " . basename($oldName) . " " . $L->say['rename_to'] . " <b>" . basename($newName) . " {$postFName}</msg>"; } else { // ERROR echo "((suc))0((/suc))<msg>" . $L->sprintf($L->say['forbidden_rename'], $filetype) . "</msg>"; } } } else { echo "((suc))0((/suc))<msg>" . $L->say['_file'] . " [" . $partFN[0] . "] " . $fileName . " " . $L->say['not_found'] . "\n" . print_r($list, true) . "</msg>"; } if ($smthExists) { if (!updateListInFile($list)) { echo "((suc))0((/suc))<msg>" . $L->say['couldnt_upd'] . "</msg>"; } } }
function split_go() { global $list, $options, $L; for ($i = 0; $i < count($_POST["files"]); $i++) { $split_ok = true; $file = $list[$_POST["files"][$i]]; $partSize = round($_POST["partSize"][$i] * 1024 * 1024); $saveTo = ($options['download_dir_is_changeable'] ? stripslashes($_POST["saveTo"][$i]) : realpath($options['download_dir'])) . '/'; $dest_name = basename($file["name"]); $fileSize = filesize($file["name"]); $totalParts = ceil($fileSize / $partSize); $crc = $_POST['crc_mode'][$i] == 'file_read' ? dechex(crc32(read_file($file["name"]))) : ($_POST['crc_mode'][$i] == 'hash_file' && function_exists('hash_file') ? hash_file('crc32b', $file["name"]) : '111111'); $crc = str_repeat("0", 8 - strlen($crc)) . strtoupper($crc); echo $L->say["start_split"] . " <b>" . basename($file["name"]) . "</b> parts of " . bytesToKbOrMbOrGb($partSize) . ", Using Method - Total Commander...<br />"; echo $L->say["tot_part"] . ": <b>" . $totalParts . "</b><br /><br />"; for ($j = 1; $j <= $totalParts; $j++) { if (file_exists($saveTo . $dest_name . '.' . sprintf("%03d", $j))) { echo $L->say["split_error"] . " " . $L->say["piece_exist"] . "<b>" . $dest_name . '.' . sprintf("%03d", $j) . "</b> !<br /><br />"; continue 2; } } if (file_exists($saveTo . $dest_name . '.crc')) { echo $L->say["split_error"] . " " . $L->say["crc_exist"] . "<b>" . $dest_name . '.crc' . "</b> !<br /><br />"; } elseif (!is_file($file["name"])) { echo $L->say["split_error"] . " " . $L->say["src_notfound"] . "<b>" . $file["name"] . "</b> !<br /><br />"; } elseif (!is_dir($saveTo)) { echo $L->say["split_error"] . " " . $L->say["dir_inexist"] . "<b>" . $saveTo . "</b> !<br /><br />"; } elseif (!@write_file($saveTo . $dest_name . ".crc", "filename=" . $dest_name . "\r\n" . "size=" . $fileSize . "\r\n" . "crc32=" . $crc . "\r\n")) { echo $L->say["split_error"] . " CRC Error<b>" . $dest_name . ".crc" . "</b> !<br /><br />"; } else { $time = getNowzone(@filemtime($saveTo . $dest_name . '.crc')); while (isset($list[$time])) { $time++; } $list[$time] = array("name" => $saveTo . $dest_name . '.crc', "size" => bytesToKbOrMbOrGb(filesize($saveTo . $dest_name . '.crc')), "date" => $time); $split_buffer_size = 2 * 1024 * 1024; $split_source = @fopen($file["name"], "rb"); if (!$split_source) { echo $L->say["crc_error_open"] . " <b>" . $file["name"] . "</b> !<br /><br />"; continue; } for ($j = 1; $j <= $totalParts; $j++) { $split_dest = @fopen($saveTo . $dest_name . '.' . sprintf("%03d", $j), "wb"); if (!$split_dest) { echo $L->say["error_open_file"] . " <b>" . $dest_name . '.' . sprintf("%03d", $j) . "</b> !<br /><br />"; $split_ok = false; break; } $split_write_times = floor($partSize / $split_buffer_size); for ($k = 0; $k < $split_write_times; $k++) { $split_buffer = fread($split_source, $split_buffer_size); if (fwrite($split_dest, $split_buffer) === false) { echo $L->say["error_write_file"] . " <b>" . $dest_name . '.' . sprintf("%03d", $j) . "</b> !<br /><br />"; $split_ok = false; break; } } $split_rest = $partSize - $split_write_times * $split_buffer_size; if ($split_ok && $split_rest > 0) { $split_buffer = fread($split_source, $split_rest); if (fwrite($split_dest, $split_buffer) === false) { echo $L->say["error_write_file"] . " <b>" . $dest_name . '.' . sprintf("%03d", $j) . "</b> !<br /><br />"; $split_ok = false; } } fclose($split_dest); if ($split_ok) { $time = getNowzone(@filemtime($saveTo . $dest_name . '.' . sprintf("%03d", $j))); while (isset($list[$time])) { $time++; } $list[$time] = array("name" => $saveTo . $dest_name . '.' . sprintf("%03d", $j), "size" => bytesToKbOrMbOrGb(filesize($saveTo . $dest_name . '.' . sprintf("%03d", $j))), "date" => $time); } } fclose($split_source); if ($split_ok) { if ($_POST["del_ok"] && !$options['disable_to']['act_del']) { if (@unlink($file["name"])) { unset($list[$_POST["files"][$i]]); echo $L->say["source_del"] . "<br /><br />"; } else { echo $L->say["source_file_is"] . "<b>" . $L->say["_not_del"] . "</b><br /><br />"; } } } if (!updateListInFile($list)) { echo $L->say["couldnt_upd_list"] . "<br /><br />"; } } } }
function merge_go() { global $list, $options, $L; if (count($_POST["files"]) !== 1) { echo $L->say['select_crc_001_file_only'] . "<br /><br />"; } else { $file = $list[$_POST["files"][0]]; if (substr($file["name"], -4) == '.001' && is_file(substr($file["name"], 0, -4) . '.crc')) { echo $L->say['select_crc_file'] . "<br /><br />"; } elseif (substr($file["name"], -4) !== '.crc' && substr($file["name"], -4) !== '.001') { echo $L->say['select_crc_001_file'] . "<br /><br />"; } else { $usingcrcfile = substr($file["name"], -4) === '.001' ? false : true; if (!$usingcrcfile) { $data = array('filename' => basename(substr($file["name"], 0, -4)), 'size' => -1, 'crc32' => '00111111'); } else { $fs = @fopen($file["name"], "rb"); } if ($usingcrcfile && !$fs) { echo $L->say['cant_read_crc_file'] . "<br /><br />"; } else { if ($usingcrcfile) { $data = array(); while (!feof($fs)) { $data_ = explode('=', trim(fgets($fs)), 2); $data[$data_[0]] = $data_[1]; } fclose($fs); } $path = realpath(DOWNLOAD_DIR) . '/'; $filename = basename($data['filename']); $partfiles = array(); $partsSize = 0; for ($j = 1; $j < 10000; $j++) { if (!is_file($path . $filename . '.' . sprintf("%03d", $j))) { if ($j == 1) { $partsSize = -1; } break; } $partfiles[] = $path . $filename . '.' . sprintf("%03d", $j); $partsSize += filesize($path . $filename . '.' . sprintf("%03d", $j)); } if (file_exists($path . $filename)) { echo $L->sprintf($L->say['err_output_file_exist'], $path . $filename) . "<br /><br />"; } elseif ($usingcrcfile && $partsSize != $data['size']) { echo $L->say['err_missing_parts'] . "<br /><br />"; } elseif ($options['check_these_before_unzipping'] && is_array($options['forbidden_filetypes']) && in_array(strtolower(strrchr($filename, ".")), $options['forbidden_filetypes'])) { echo $L->sprintf($L->say['_err_filetype'], strrchr($filename, ".")) . "<br /><br />"; } else { $merge_buffer_size = 2 * 1024 * 1024; $merge_dest = @fopen($path . $filename, "wb"); if (!$merge_dest) { echo $L->sprintf($L->say['imposible_open_dir'], $path . $filename) . "<br /><br />"; } else { $merge_ok = true; foreach ($partfiles as $part) { $merge_source = @fopen($part, "rb"); while (!feof($merge_source)) { $merge_buffer = fread($merge_source, $merge_buffer_size); if ($merge_buffer === false) { echo $L->sprintf($L->say['error_read_file'], $part) . "<br /><br />"; $merge_ok = false; break; } if (fwrite($merge_dest, $merge_buffer) === false) { echo $L->sprintf($L->say['error_write_file'], $path . $filename) . "<br /><br />"; $merge_ok = false; break; } } fclose($merge_source); if (!$merge_ok) { break; } } fclose($merge_dest); if ($merge_ok) { $fc = $_POST['crc_mode'] == 'file_read' ? dechex(crc32(read_file($path . $filename))) : ($_POST['crc_mode'] == 'hash_file' && function_exists('hash_file') ? hash_file('crc32b', $path . $filename) : '111111'); $fc = str_repeat("0", 8 - strlen($fc)) . strtoupper($fc); if ($fc != strtoupper($data["crc32"])) { echo $L->say['crc32_unmatch'] . "<br /><br />"; } else { echo $L->sprintf($L->say['success_merge'], $filename) . '!<br /><br />'; if ($usingcrcfile && $fc != '00111111' && $_POST["del_ok"] && !$options['disable_to']['act_del']) { if ($usingcrcfile) { $partfiles[] = $file["name"]; } foreach ($partfiles as $part) { if (@unlink($part)) { foreach ($list as $list_key => $list_file) { if ($list_file["name"] === $part) { unset($list[$list_key]); } } echo "<b>" . basename($part) . "</b> " . $L->say['_deleted'] . ".<br />"; } else { echo "<b>" . basename($part) . "</b> " . $L->say['_not_del'] . ".<br />"; } } echo "<br />"; } $time = getNowzone(@filemtime($path . $filename)); while (isset($list[$time])) { $time++; } $list[$time] = array("name" => $path . $filename, "size" => bytesToKbOrMbOrGb($partsSize), "date" => $time); if (!updateListInFile($list)) { echo $L->say['couldnt_upd_list'] . "<br /><br />"; } } } } } } } } }
function split_go() { global $list, $options; for ($i = 0; $i < count($_POST["files"]); $i++) { $split_ok = true; $file = $list[$_POST["files"][$i]]; $partSize = round($_POST["partSize"][$i] * 1024 * 1024); $saveTo = ($options['download_dir_is_changeable'] ? stripslashes($_POST["saveTo"][$i]) : realpath($options['download_dir'])) . '/'; $dest_name = basename($file["name"]); $fileSize = filesize($file["name"]); $totalParts = ceil($fileSize / $partSize); $crc = $_POST['crc_mode'][$i] == 'file_read' ? dechex(crc32(read_file($file["name"]))) : ($_POST['crc_mode'][$i] == 'hash_file' && function_exists('hash_file') ? hash_file('crc32b', $file["name"]) : '111111'); $crc = str_repeat("0", 8 - strlen($crc)) . strtoupper($crc); echo "Started to split file <b>" . basename($file["name"]) . "</b> parts of " . bytesToKbOrMbOrGb($partSize) . ", Using Method - Total Commander...<br />"; echo "Total Parts: <b>" . $totalParts . "</b><br /><br />"; for ($j = 1; $j <= $totalParts; $j++) { if (file_exists($saveTo . $dest_name . '.' . sprintf("%03d", $j))) { echo "It is not possible to split the file. A piece already exists<b>" . $dest_name . '.' . sprintf("%03d", $j) . "</b> !<br /><br />"; continue 2; } } if (file_exists($saveTo . $dest_name . '.crc')) { echo "It is not possible to split the file. CRC file already exists<b>" . $dest_name . '.crc' . "</b> !<br /><br />"; } elseif (!is_file($file["name"])) { echo "It is not possible to split the file. Source file not found<b>" . $file["name"] . "</b> !<br /><br />"; } elseif (!is_dir($saveTo)) { echo "It is not possible to split the file. Directory doesn't exist<b>" . $saveTo . "</b> !<br /><br />"; } elseif (!@write_file($saveTo . $dest_name . ".crc", "filename=" . $dest_name . "\r\n" . "size=" . $fileSize . "\r\n" . "crc32=" . $crc . "\r\n")) { echo "It is not possible to split the file. CRC Error<b>" . $dest_name . ".crc" . "</b> !<br /><br />"; } else { $time = filemtime($saveTo . $dest_name . '.crc'); while (isset($list[$time])) { $time++; } $list[$time] = array("name" => $saveTo . $dest_name . '.crc', "size" => bytesToKbOrMbOrGb(filesize($saveTo . $dest_name . '.crc')), "date" => $time); $split_buffer_size = 2 * 1024 * 1024; $split_source = @fopen($file["name"], "rb"); if (!$split_source) { echo "It is not possible to open source file <b>" . $file["name"] . "</b> !<br /><br />"; continue; } for ($j = 1; $j <= $totalParts; $j++) { $split_dest = @fopen($saveTo . $dest_name . '.' . sprintf("%03d", $j), "wb"); if (!$split_dest) { echo "Error openning file <b>" . $dest_name . '.' . sprintf("%03d", $j) . "</b> !<br /><br />"; $split_ok = false; break; } $split_write_times = floor($partSize / $split_buffer_size); for ($k = 0; $k < $split_write_times; $k++) { $split_buffer = fread($split_source, $split_buffer_size); if (fwrite($split_dest, $split_buffer) === false) { echo "Error writing the file <b>" . $dest_name . '.' . sprintf("%03d", $j) . "</b> !<br /><br />"; $split_ok = false; break; } } $split_rest = $partSize - $split_write_times * $split_buffer_size; if ($split_ok && $split_rest > 0) { $split_buffer = fread($split_source, $split_rest); if (fwrite($split_dest, $split_buffer) === false) { echo "Error writing the file <b>" . $dest_name . '.' . sprintf("%03d", $j) . "</b> !<br /><br />"; $split_ok = false; } } fclose($split_dest); if ($split_ok) { $time = filemtime($saveTo . $dest_name . '.' . sprintf("%03d", $j)); while (isset($list[$time])) { $time++; } $list[$time] = array("name" => $saveTo . $dest_name . '.' . sprintf("%03d", $j), "size" => bytesToKbOrMbOrGb(filesize($saveTo . $dest_name . '.' . sprintf("%03d", $j))), "date" => $time); } } fclose($split_source); if ($split_ok) { if ($_POST["del_ok"] && !$options['disable_deleting']) { if (@unlink($file["name"])) { unset($list[$_POST["files"][$i]]); echo "Source file deleted.<br /><br />"; } else { echo "Source file is<b>not deleted!</b><br /><br />"; } } } if (!updateListInFile($list)) { echo "Couldn't update file list. Problem writing to file!<br /><br />"; } } } }
function deleteIt($fileName, $fileID, $list) { @unlink($fileName); unset($list[$fileID]); updateListInFile($list); }
$ada_acc = true; break; } } } // check if max download reach $trheute = $visitors->heute + 1; if ($trheute > $options["maximum_free_downloads"]) { $msgNya = $L->sprintf($L->say['alert_premix_free'], $options["maximum_free_downloads"], $options["delay_per_ip"]); } } // Init call create_list if ($czFlst == 0 && (!isset($_COOKIE["showAll"]) || isset($_COOKIE["showAll"]) && $_COOKIE["showAll"] != 1)) { _create_list(false, true); // medic mode, to force list in downloaded files updateListInFile(FILES_LST); // relist file } // Check traffic $is_exceed = $is_expired = false; if ($options["limitbytraffic"]) { require_once CLASS_DIR . "limit_traffic.class.php"; $traffic = new traffics(); if ($traffic->is_error != 0) { html_error($traffic->ret_msg, 0); } $traffic->get(); if ($options["day_reset_trafic"] > 0) { $traffic->autoreset(); } $is_exceed = $traffic->total - $traffic->max >= 0;
function mrename_go() { global $list, $options, $PHP_SELF; if ($_POST["yes"] && @trim($_POST['extension'])) { $_POST['extension'] = @trim($_POST['extension']); while ($_POST['extension'][0] == '.') { $_POST['extension'] = substr($_POST['extension'], 1); } if ($_POST[extension]) { for ($i = 0; $i < count($_POST["files"]); $i++) { $file = $list[$_POST["files"][$i]]; if (file_exists($file["name"])) { $filetype = '.' . strtolower($_POST['extension']); if (is_array($options['forbidden_filetypes']) && in_array('.' . strtolower($_POST['extension']), $options['forbidden_filetypes'])) { printf(lang(82), $filetype); echo '<br /><br />'; } else { if (@rename($file["name"], fixfilename($file["name"] . ".{$_POST['extension']}"))) { printf(lang(194) . '<br />', basename($file['name']), fixfilename(basename($file["name"] . ".{$_POST['extension']}"))); $list[$_POST["files"][$i]]["name"] .= '.' . $_POST['extension']; $list[$_POST["files"][$i]]["name"] = fixfilename($list[$_POST["files"][$i]]["name"]); } else { printf(lang(193), basename($file['name'])); echo '<br />'; } } } else { printf(lang(145), basename($file['name'])); echo '<br />'; } } if (!updateListInFile($list)) { echo lang(146) . "<br />"; } } } else { ?> <script type="text/javascript">location.href="<?php echo substr($PHP_SELF, 0, strlen($PHP_SELF) - strlen(strstr($PHP_SELF, "?"))) . "?act=files"; ?> ";</script> <?php } }
function unzip_go() { global $list, $options; require_once CLASS_DIR . "unzip.php"; $any_file_unzippped = false; for ($i = 0; $i < count($_POST["files"]); $i++) { $file = $list[$_POST["files"][$i]]; if (file_exists($file["name"])) { $zip = new dUnzip2($file["name"]); $allf = $zip->getList(); $file_inside_zip_exists = false; $forbidden_inside_zip = false; foreach ($allf as $k => $properties) { if (file_exists($options['download_dir'] . basename($properties['file_name']))) { $file_inside_zip_exists = true; break; } } if ($options['check_these_before_unzipping']) { foreach ($allf as $k => $property) { $zfiletype = strrchr($property['file_name'], "."); if (is_array($options['forbidden_filetypes']) && in_array(strtolower($zfiletype), $options['forbidden_filetypes'])) { $forbidden_inside_zip = true; break; } } } if ($file_inside_zip_exists) { echo 'Some file(s) inside <b>' . htmlentities(basename($file["name"])) . '</b> already exist on download directory'; echo "<br /><br />"; } elseif ($forbidden_inside_zip) { printf(lang(181), $zfiletype); echo "<br /><br />"; } else { $zip->unzipAll($options['download_dir']); if ($zip->getList() != false) { $any_file_unzippped = true; echo '<b>' . htmlentities(basename($file["name"])) . '</b> unzipped successfully<br /><br />'; foreach ($allf as $k => $properties) { $efile = realpath($options['download_dir']) . '/' . basename($properties['file_name']); if (is_file($efile)) { $time = filemtime($efile); while (isset($list[$time])) { $time++; } $list[$time] = array("name" => $efile, "size" => bytesToKbOrMbOrGb(filesize($efile)), "date" => $time); } } if (!updateListInFile($list)) { echo lang(146) . "<br /><br />"; } } else { echo "File <b>" . $file["name"] . "</b> not found!<br /><br />"; } } } } }
function pack_go() { global $list, $options, $L; $arc_name = basename($_POST["arc_name"] . '.' . $_POST["arc_ext"]); $saveTo = ($options['download_dir_is_changeable'] ? stripslashes($_POST["saveTo"][$i]) : realpath($options['download_dir'])) . '/'; $v_list = array(); if (!$_POST["arc_name"] || !$_POST["arc_ext"]) { echo $L->say['enter_arc_name'] . "<br /><br />"; } elseif (file_exists($saveTo . $arc_name)) { echo $L->sprintf($L->say['err_output_file_exist'], $arc_name) . "<br /><br />"; } else { for ($i = 0; $i < count($_POST["files"]); $i++) { $file = $list[$_POST["files"][$i]]; if (file_exists($file["name"])) { $v_list[] = $file["name"]; } else { echo $L->sprintf($L->say['not_found'], $file['name']) . "<br /><br />"; } } if (count($v_list) < 1) { echo "<b class=\"r\">" . $L->say['error_occur'] . "</b><br /><br />"; } else { $arc_name = $saveTo . $arc_name; require_once CLASS_DIR . "tar.php"; $tar = new Archive_Tar($arc_name); if ($tar->error != '') { echo $tar->error . "<br /><br />"; } else { $remove_path = realpath($options['download_dir']) . '/'; $tar->createModify($v_list, '', $remove_path); if (!file_exists($arc_name)) { echo "<b class=\"r\">" . $L->say['_error'] . "</b> " . $L->say['arcv_not_created'] . "<br /><br />"; } else { if (count($v_list = $tar->listContent()) > 0) { for ($i = 0; $i < sizeof($v_list); $i++) { echo $L->sprintf($L->say['was_pack'], $v_list[$i]['filename']) . " <br />"; } echo $L->sprintf($L->say['pack_in_arcv'], $arc_name) . "<br />"; $stmp = strtolower($arc_name); $arc_method = "Tar"; if (!$options['disable_to']['act_archive_compression']) { if (strrchr($stmp, "tar.gz") + 5 == strlen($stmp)) { $arc_method = "Tar.gz"; } elseif (strrchr($stmp, "tar.bz2") + 6 == strlen($stmp)) { $arc_method = "Tar.bz2"; } } unset($stmp); $time = explode(" ", microtime()); $time = str_replace("0.", $time[1], $time[0]); $list[$time] = array("name" => $arc_name, "size" => bytesToKbOrMbOrGb(filesize($arc_name)), "date" => $time, "link" => "", "comment" => "archive " . $arc_method); } else { echo "<b class=\"r\">" . $L->say['_error'] . "</b> " . $L->say['arcv_empty'] . "<br /><br />"; } if (!updateListInFile($list)) { echo $L->say['couldnt_upd'] . '<br /><br />'; } } } } } }
function boxes_go() { global $list, $options, $fromaddr; require_once CLASS_DIR . "mail.php"; $_POST["partSize"] = isset($_POST["partSize"]) & $_POST["split"] == "on" ? $_POST["partSize"] * 1024 * 1024 : FALSE; $v_mails = explode("\n", $_POST['emails']); $v_min = count(count($_POST["files"]) < count($v_mails) ? $_POST["files"] : $v_mails); for ($i = 0; $i < $v_min; $i++) { $file = $list[$_POST["files"][$i]]; $v_mail = trim($v_mails[$i]); if (!checkmail($v_mail)) { printf(lang(144), $v_mail); echo "<br /><br />"; } elseif (file_exists($file["name"])) { if (xmail("{$fromaddr}", $v_mail, "File " . basename($file["name"]), "File: " . basename($file["name"]) . "\r\n" . "Link: " . $file["link"] . ($file["comment"] ? "\r\nComments: " . str_replace("\\r\\n", "\r\n", $file["comment"]) : ""), $file["name"], $_POST["partSize"], $_POST["method"])) { if ($_POST["del_ok"] && !$options['disable_deleting']) { if (@unlink($file["name"])) { $v_ads = " and deleted!"; unset($list[$_POST["files"][$i]]); } else { $v_ads = ", but <b>not</b> deleted!</b>"; } } else { $v_ads = " !"; } echo '<script type="text/javascript">' . "mail('File <b>" . basename($file["name"]) . "</b> it is sent for the address <b>" . $v_mail . "</b>" . $v_ads . "', '" . md5(basename($file["name"])) . "');</script>\r\n<br />"; } else { echo lang(12) . "<br />"; } } else { printf(lang(145), $file['name']); echo "<br /><br />"; } } if (count($_POST["files"]) < count($v_mails)) { for ($i = count($_POST["files"]); $i < count($v_mails); $i++) { $v_mail = trim($v_mails[$i]); echo "{$v_mail}.</b><br /><br />"; } echo "</b><br />"; } elseif (count($_POST["files"]) > count($v_mails)) { for ($i = count($v_mails); $i < count($_POST["files"]); $i++) { $file = $list[$_POST["files"][$i]]; if (file_exists($file["name"])) { echo $file["name"] . "<br /><br />"; } else { printf(lang(145), $file['name']); echo "<br /><br />"; } } echo "<br />"; } if ($_POST["del_ok"]) { if (!updateListInFile($list)) { echo lang(146) . "<br /><br />"; } } }
function rar_go_go() { global $options, $list, $L; ?> <script type="text/javascript"> /* <![CDATA[ */ function rar_st(elementid, st){ document.getElementById(elementid).innerHTML = st; return true; } /* ]]> */ </script> <?php flush(); require_once CLASS_DIR . "rar.php"; if ($options['disable_to']['act_del']) { $_GET['rar_opts']['delete'] = 0; } if ($options['disable_to']['act_archive_compression']) { $_GET['rar_opts']['comp_lvl'] = 0; } if ($_GET['rar_opts']['separated']) { $am = count($_GET['rar_opts']['filestorar']); } else { $am = 1; } for ($i = 0; $i < $am; $i++) { $name = $_GET['rar_opts']['separated'] ? basename($list[$_GET['rar_opts']['filestorar'][$i]]['name']) . '.rar' : $_GET['rar_opts']['rarfilename']; $rar = new rlRar($name, $options['check_these_before_unzipping'] ? $options['forbidden_filetypes'] : array('.xxx')); if ($rar->rar_return !== 'rar') { ?> <script type="text/javascript">rar_st('rar_status<?php echo $i; ?> ', '<?php echo $L->say['rar_disappear']; ?> ');</script> <?php } else { $rar_opts_tmp = $_GET['rar_opts']; if ($_GET['rar_opts']['separated']) { $rar_opts_tmp['filestorar'] = array($_GET['rar_opts']['filestorar'][$i]); } $rar_result = $rar->addtoarchive($rar_opts_tmp, $options['download_dir'], 'rar_status' . $i, $i); echo $rar_result; if (strpos($rar_result, ", 'Done')") !== false) { _create_list(); clearstatcache(); if ($_GET['rar_opts']['delete'] == true) { foreach ($_GET['rar_opts']['filestorar'] as $rar_tounlist) { $rar_tounlist = basename($list[$rar_tounlist]['name']); if (empty($rar_tounlist)) { continue; } $rar_tounlist = realpath($options['download_dir']) . '/' . $rar_tounlist; if (is_file($rar_tounlist)) { continue; } foreach ($list as $list_key => $list_item) { if ($list_item['name'] === $rar_tounlist) { unset($list[$list_key]); } } } } $rar_tolist = realpath($options['download_dir']) . '/' . basename($rar->filename); if ($_GET['rar_opts']['vols'] && !is_file($rar_tolist)) { if (substr(strtolower($rar_tolist), -4) == '.rar') { $rar_tolist = substr($rar_tolist, 0, -4); } $tmp = basename(strtolower($rar_tolist)) . '.part'; $rar_dir = opendir(realpath($options['download_dir']) . '/'); while (false !== ($rar_f_dd = readdir($rar_dir))) { $rar_f_dd_ = basename(strtolower($rar_f_dd)); if ($tmp == substr($rar_f_dd_, 0, strlen($tmp)) && is_numeric(substr($rar_f_dd_, strlen($tmp), -4))) { $rar_f_dd = realpath($options['download_dir']) . '/' . basename($rar_f_dd); $time = getNowzone(@filemtime($rar_f_dd)); while (isset($list[$time])) { $time++; } $list[$time] = array("name" => $rar_f_dd, "size" => bytesToKbOrMbOrGb(filesize($rar_f_dd)), "date" => $time); } } closedir($rar_dir); } elseif (is_file($rar_tolist)) { $time = getNowzone(@filemtime($rar_tolist)); while (isset($list[$time])) { $time++; } $list[$time] = array("name" => $rar_tolist, "size" => bytesToKbOrMbOrGb(filesize($rar_tolist)), "date" => $time); } if (!updateListInFile($list)) { ?> <script type="text/javascript">var tmp = document.getElementById('rar_finished'); tmp.innerHTML = "<?php echo $L->say['couldnt_upd_list']; ?> <br /><br />" + tmp.innerHTML</script>; <?php } } } } ?> <script type="text/javascript">document.getElementById('rar_finished').style.display = '';</script> <?php }
function split_go() { global $list, $options; for ($i = 0; $i < count($_POST['files']); $i++) { $split_ok = true; $file = $list[$_POST['files'][$i]]; $partSize = round($_POST['partSize'][$i] * 1024 * 1024); $saveTo = $options['download_dir_is_changeable'] ? stripslashes($_POST['saveTo'][$i]) : realpath(DOWNLOAD_DIR) . '/'; if (substr($saveTo, -1) != '/') { $saveTo .= '/'; } $dest_name = basename($file['name']); $fileSize = filesize($file['name']); $totalParts = ceil($fileSize / $partSize); $crc = $_POST['crc_mode'][$i] == 'file_read' ? dechex(crc32(read_file($file['name']))) : ($_POST['crc_mode'][$i] == 'hash_file' && function_exists('hash_file') ? hash_file('crc32b', $file['name']) : '111111'); $crc = str_repeat('0', 8 - strlen($crc)) . strtoupper($crc); echo "Started to split file <b>{$dest_name}</b> parts of " . bytesToKbOrMbOrGb($partSize) . ", Using Method - Total Commander...<br />"; echo "Total Parts: <b>{$totalParts}</b><br /><br />"; for ($j = 1; $j <= $totalParts; $j++) { if (file_exists("{$saveTo}{$dest_name}." . sprintf('%03d', $j))) { echo "It is not possible to split the file. A piece already exists <b>{$dest_name}." . sprintf('%03d', $j) . '</b> !<br /><br />'; continue 2; } } if (file_exists("{$saveTo}{$dest_name}.crc")) { echo "It is not possible to split the file. CRC file already exists <b>{$dest_name}.crc</b> !<br /><br />"; } elseif (!is_file($file['name'])) { echo "It is not possible to split the file. Source file not found <b>{$file['name']}</b> !<br /><br />"; } elseif (!is_dir($saveTo)) { echo "It is not possible to split the file. Directory doesn't exist<b>{$saveTo}</b> !<br /><br />"; } elseif (!@write_file("{$saveTo}{$dest_name}.crc", "filename={$dest_name}\r\nsize={$fileSize}\r\ncrc32={$crc}\r\n")) { echo "It is not possible to split the file. CRC Error<b>{$dest_name}.crc" . "</b> !<br /><br />"; } else { $time = filemtime("{$saveTo}{$dest_name}.crc"); while (isset($list[$time])) { $time++; } $list[$time] = array('name' => realpath("{$saveTo}{$dest_name}.crc"), 'size' => bytesToKbOrMbOrGb(filesize("{$saveTo}{$dest_name}.crc")), 'date' => $time); $split_buffer_size = 2 * 1024 * 1024; $split_source = @fopen($file['name'], 'rb'); if (!$split_source) { echo "It is not possible to open source file <b>{$file['name']}</b> !<br /><br />"; continue; } for ($j = 1; $j <= $totalParts; $j++) { $part = sprintf('%03d', $j); $part_name = "{$dest_name}.{$part}"; $dest_file = $saveTo . $part_name; $split_dest = @fopen($dest_file, 'wb'); if (!$split_dest) { echo "Error openning file <b>{$part_name}</b> !<br /><br />"; $split_ok = false; break; } $split_write_times = floor($partSize / $split_buffer_size); for ($k = 0; $k < $split_write_times; $k++) { $split_buffer = fread($split_source, $split_buffer_size); $split_written = fwrite($split_dest, $split_buffer); if ($split_written === false || $split_written != strlen($split_buffer)) { echo "Error writing the file <b>{$part_name}</b> !<br /><br />"; $split_ok = false; break; } } $split_rest = $partSize - $split_write_times * $split_buffer_size; if ($split_ok && $split_rest > 0) { $split_buffer = fread($split_source, $split_rest); $split_written = fwrite($split_dest, $split_buffer); if ($split_written === false || $split_written != strlen($split_buffer)) { echo "Error writing the file <b>{$part_name}</b> !<br /><br />"; $split_ok = false; } } fclose($split_dest); if ($split_ok) { $time = filemtime($dest_file); while (isset($list[$time])) { $time++; } $list[$time] = array('name' => realpath($dest_file), 'size' => bytesToKbOrMbOrGb(filesize($dest_file)), 'date' => $time); } } fclose($split_source); if ($split_ok && $_POST['del_ok'] && !$options['disable_deleting']) { if (@unlink($file['name'])) { unset($list[$_POST['files'][$i]]); echo 'Source file deleted.<br /><br />'; } else { echo 'Source file is<b>not deleted!</b><br /><br />'; } } if (!updateListInFile($list)) { echo "Couldn't update file list. Problem writing to file!<br /><br />"; } } } }
function zip_go() { global $list, $options, $L; $saveTo = realpath($options['download_dir']) . '/'; $_POST["archive"] = strlen(trim(urldecode($_POST["archive"]))) > 4 && substr(trim(urldecode($_POST["archive"])), -4) == ".zip" ? trim(urldecode($_POST["archive"])) : "archive.zip"; $_POST["archive"] = $saveTo . basename($_POST["archive"]); for ($i = 0; $i < count($_POST["files"]); $i++) { $files[] = $list[$_POST["files"][$i]]; } foreach ($files as $file) { $CurrDir = ROOT_DIR; $inCurrDir = stristr(dirname($file["name"]), $CurrDir) ? TRUE : FALSE; if ($inCurrDir) { $add_files[] = substr($file["name"], strlen($CurrDir)); } } require_once CLASS_DIR . "pclzip.php"; $archive = new PclZip($_POST["archive"]); $no_compression = $options['disable_to']['act_archive_compression'] || isset($_POST["no_compression"]); if (file_exists($_POST["archive"])) { if ($no_compression) { $v_list = $archive->add($add_files, PCLZIP_OPT_REMOVE_ALL_PATH, PCLZIP_OPT_NO_COMPRESSION); } else { $v_list = $archive->add($add_files, PCLZIP_OPT_REMOVE_ALL_PATH); } } else { if ($no_compression) { $v_list = $archive->create($add_files, PCLZIP_OPT_REMOVE_ALL_PATH, PCLZIP_OPT_NO_COMPRESSION); } else { $v_list = $archive->create($add_files, PCLZIP_OPT_REMOVE_ALL_PATH); } } if ($v_list == 0) { echo $L->say['_error'] . ": " . $archive->errorInfo(true) . "<br /><br />"; return; } else { echo $L->say['_arcv'] . " <b>" . $_POST["archive"] . "</b> " . $L->say['success_created'] . "<br /><br />"; } if (is_file($_POST['archive'])) { $time = getNowzone(@filemtime($_POST['archive'])); while (isset($list[$time])) { $time++; } $list[$time] = array("name" => $_POST['archive'], "size" => bytesToKbOrMbOrGb(filesize($_POST['archive'])), "date" => $time); if (!updateListInFile($list)) { echo $L->say['couldnt_upd_list'] . "<br /><br />"; } } }