示例#1
0
while (ob_get_level() > 0) {
    if (!ob_end_clean()) {
        break;
    }
}
//
// EXTRACT STAGE
//
$orig_filename4check = strtolower($_FILES['tplset_archive']['name']);
if (strtolower(substr($orig_filename4check, -4)) == '.zip') {
    // zip
    require_once dirname(__FILE__) . '/include/Archive_Zip.php';
    $reader = new Archive_Zip($_FILES['tplset_archive']['tmp_name']);
    $files = $reader->extract(array('extract_as_string' => true));
    if (!is_array(@$files)) {
        die($reader->errorName());
    }
    $do_upload = true;
} else {
    if (substr($orig_filename4check, -4) == '.tgz' || substr($orig_filename4check, -7) == '.tar.gz') {
        // tar.gz
        require_once XOOPS_ROOT_PATH . '/class/class.tar.php';
        $tar = new tar();
        $tar->openTar($_FILES['tplset_archive']['tmp_name']);
        $files = array();
        foreach ($tar->files as $id => $info) {
            $files[] = array('filename' => $info['name'], 'mtime' => $info['time'], 'content' => $info['file']);
        }
        if (empty($files)) {
            die(_TPLSADMIN_ERR_INVALIDARCHIVE);
        }