Пример #1
0
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 />";
        }
    }
}
Пример #2
0
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>';
    }
}
Пример #3
0
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>';
    }
}
Пример #4
0
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>';
    }
}
Пример #5
0
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 
    }
}
Пример #6
0
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 
}
Пример #7
0
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 />";
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
Пример #8
0
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 />";
        }
    }
}
Пример #9
0
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 />';
                    }
                }
            }
        }
    }
}
Пример #10
0
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 />";
        }
    }
}
Пример #11
0
        $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>";
        }
    }
}
Пример #12
0
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 />";
            }
        }
    }
}
Пример #13
0
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 />";
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
Пример #14
0
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 />";
            }
        }
    }
}
Пример #15
0
function deleteIt($fileName, $fileID, $list)
{
    @unlink($fileName);
    unset($list[$fileID]);
    updateListInFile($list);
}
Пример #16
0
                $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;
Пример #17
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 
    }
}
Пример #18
0
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>&nbsp;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 />";
                }
            }
        }
    }
}
Пример #19
0
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 />';
                    }
                }
            }
        }
    }
}
Пример #20
0
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 />";
        }
    }
}
Пример #21
0
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 
}
Пример #22
0
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 />";
            }
        }
    }
}
Пример #23
0
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 />";
        }
    }
}