Exemple #1
0
function plugin_dump_upload()
{
    global $vars, $_STORAGE;
    if (!PLUGIN_DUMP_ALLOW_RESTORE) {
        return array('code' => false, 'msg' => 'Restoring function is not allowed');
    }
    $filename = $_FILES['upload_file']['name'];
    $matches = array();
    $arc_kind = false;
    if (!preg_match('/(\\.tar|\\.tar.gz|\\.tgz)$/', $filename, $matches)) {
        die_message('Invalid file suffix');
    } else {
        $matches[1] = strtolower($matches[1]);
        switch ($matches[1]) {
            case '.tar':
                $arc_kind = 'tar';
                break;
            case '.tgz':
                $arc_kind = 'tar';
                break;
            case '.tar.gz':
                $arc_kind = 'tgz';
                break;
            default:
                die_message('Invalid file suffix: ' . $matches[1]);
        }
    }
    if ($_FILES['upload_file']['size'] > PLUGIN_DUMP_MAX_FILESIZE * 1024) {
        die_message('Max file size exceeded: ' . PLUGIN_DUMP_MAX_FILESIZE . 'KB');
    }
    // Create a temporary tar file
    $uploadfile = tempnam(realpath(CACHE_DIR), 'tarlib_uploaded_');
    $tar = new tarlib();
    if (!move_uploaded_file($_FILES['upload_file']['tmp_name'], $uploadfile) || !$tar->open($uploadfile, $arc_kind)) {
        @unlink($uploadfile);
        die_message('ファイルがみつかりませんでした。');
    }
    $pattern = "(({$_STORAGE['DATA_DIR']['extract_filter']})|" . "({$_STORAGE['UPLOAD_DIR']['extract_filter']})|" . "({$_STORAGE['BACKUP_DIR']['extract_filter']}))";
    $files = $tar->extract($pattern);
    if (empty($files)) {
        @unlink($uploadfile);
        return array('code' => false, 'msg' => '<p>展開できるファイルがありませんでした。</p>');
    }
    $msg = '<p><strong>展開したファイル一覧</strong><ul>';
    foreach ($files as $name) {
        $msg .= "<li>{$name}</li>\n";
    }
    $msg .= '</ul></p>';
    $tar->close();
    @unlink($uploadfile);
    return array('code' => true, 'msg' => $msg);
}
Exemple #2
0
function plugin_dump_upload()
{
    global $vars, $_STORAGE;
    if (!PLUGIN_DUMP_ALLOW_RESTORE) {
        return array('code' => FALSE, 'msg' => T_("Restoring function is not allowed"));
    }
    $filename = $_FILES['upload_file']['name'];
    $matches = array();
    $arc_kind = FALSE;
    if (!preg_match('/(\\.tar|\\.tar.gz|\\.tgz)$/', $filename, $matches)) {
        die_message('Invalid file suffix');
    } else {
        $matches[1] = strtolower($matches[1]);
        switch ($matches[1]) {
            case '.tar':
                $arc_kind = 'tar';
                break;
            case '.tgz':
                $arc_kind = 'tar';
                break;
            case '.tar.gz':
                $arc_kind = 'tgz';
                break;
            default:
                die_message(T_("Invalid file suffix: ") . $matches[1]);
        }
    }
    if ($_FILES['upload_file']['size'] > PLUGIN_DUMP_MAX_FILESIZE * 1024) {
        die_message(T_("Max file size exceeded: ") . PLUGIN_DUMP_MAX_FILESIZE . 'KB');
    }
    // Create a temporary tar file
    $uploadfile = tempnam(realpath(CACHE_DIR), 'tarlib_uploaded_');
    $tar = new tarlib();
    if (!move_uploaded_file($_FILES['upload_file']['tmp_name'], $uploadfile) || !$tar->open($uploadfile, $arc_kind)) {
        @unlink($uploadfile);
        die_message(_("The file was not found."));
    }
    $pattern = "(({$_STORAGE['DATA_DIR']['extract_filter']})|" . "({$_STORAGE['UPLOAD_DIR']['extract_filter']})|" . "({$_STORAGE['BACKUP_DIR']['extract_filter']}))";
    $files = $tar->extract($pattern);
    if (empty($files)) {
        @unlink($uploadfile);
        return array('code' => FALSE, 'msg' => '<p>' . T_("There was no file that was able to be expanded.") . '</p>');
    }
    $msg = '<p><strong>' . T_("Progressing file list") . '</strong><ul>';
    foreach ($files as $name) {
        $msg .= "<li>{$name}</li>\n";
    }
    $msg .= '</ul></p>';
    $tar->close();
    @unlink($uploadfile);
    return array('code' => TRUE, 'msg' => $msg);
}
Exemple #3
0
function plugin_dump2_upload()
{
    global $vars, $_STORAGE;
    $qm = get_qm();
    if (!PLUGIN_DUMP_ALLOW_RESTORE) {
        return array('code' => FALSE, 'msg' => $qm->m['plg_dump']['err_prohibit_restore']);
    }
    $filename = $_FILES['upload_file']['name'];
    $matches = array();
    $arc_kind = FALSE;
    if (!preg_match('/(\\.tar|\\.tar.gz|\\.tgz)$/', $filename, $matches)) {
        die_message($qm->m['plg_dump2']['err_invalid_file_suf']);
    } else {
        $matches[1] = strtolower($matches[1]);
        switch ($matches[1]) {
            case '.tar':
                $arc_kind = 'tar';
                break;
            case '.tgz':
                $arc_kind = 'tar';
                break;
            case '.tar.gz':
                $arc_kind = 'tgz';
                break;
            default:
                die_message($qm->replace('plg_dump2.err_invalid_file_suf2', $matches[1]));
        }
    }
    if ($_FILES['upload_file']['size'] > PLUGIN_DUMP_MAX_FILESIZE * 1024) {
        die_message($qm->replace('plg_dump.err_size_over', PLUGIN_DUMP_MAX_FILESIZE));
    }
    // Create a temporary tar file
    $uploadfile = tempnam(realpath(CACHEQHM_DIR), 'tarlib_uploaded_');
    $tar = new tarlib();
    if (!move_uploaded_file($_FILES['upload_file']['tmp_name'], $uploadfile) || !$tar->open($uploadfile, $arc_kind)) {
        @unlink($uploadfile);
        die_message($qm->m['plg_dump']['err_upload_failed']);
    }
    $pattern = "(({$_STORAGE['DATA_DIR']['extract_filter']})|" . "({$_STORAGE['UPLOAD_DIR']['extract_filter']})|" . "({$_STORAGE['BACKUP_DIR']['extract_filter']}))";
    $files = $tar->extract($pattern);
    if (empty($files)) {
        @unlink($uploadfile);
        return array('code' => FALSE, 'msg' => $qm->m['plg_dump']['err_upload_empty']);
    }
    $msg = '<p><strong>' . $qm->m['plg_dump']['restore_header'] . '</strong><ul>';
    foreach ($files as $name) {
        $msg .= "<li>{$name}</li>\n";
    }
    $msg .= '</ul></p>';
    $tar->close();
    @unlink($uploadfile);
    return array('code' => TRUE, 'msg' => $msg);
}