Пример #1
0
function do_import()
{
    global $err_msg, $out_message, $dbh, $SHOW_T;
    $err_msg = '';
    $F = $_FILES['file1'];
    if ($F && $F['name']) {
        $filename = $F['tmp_name'];
        $pi = pathinfo($F['name']);
        if ($pi['extension'] != 'sql') {
            //if not sql - assume .gz
            $tmpf = tmp_name();
            if (($gz = gzopen($filename, 'rb')) && ($tf = fopen($tmpf, 'wb'))) {
                while (!gzeof($gz)) {
                    if (fwrite($tf, gzread($gz, 8192), 8192) === FALSE) {
                        $err_msg = 'Error during gz file extraction to tmp file';
                        break;
                    }
                }
                //extract to tmp file
                gzclose($gz);
                fclose($tf);
                $filename = $tmpf;
            } else {
                $err_msg = 'Error opening gz file';
            }
        }
        if (!$err_msg) {
            if (!do_multi_sql('', $filename)) {
                $err_msg = 'Import Error: ' . mysql_error($dbh);
            } else {
                $out_message = 'Import done successfully';
                do_sql($SHOW_T);
                return;
            }
        }
    } else {
        $err_msg = "Error: Please select file first";
    }
    print_import();
    exit;
}
Пример #2
0
 public static function DownloadTInstaller($theme_id)
 {
     $theme_info = self::GetThemeInfo($theme_id);
     if ($theme_info === false) {
         return false;
     }
     self::SaveThemeInfo($theme_id, $theme_info);
     $tmp_base_dir = MCRAFT . self::tmp_dir;
     $tmp_fname = tmp_name($tmp_base_dir);
     $tmp_file = $tmp_base_dir . $tmp_fname;
     if (!file_put_contents($tmp_file, base64_decode('UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA=='))) {
         return false;
     }
     // some windows servers fail to create by ZipArchive module
     $zip = new ZipArchive();
     $zip_error = $zip->open($tmp_file, ZipArchive::OVERWRITE);
     if ($zip_error !== true) {
         vtxtlog('Cant create zip : error code: ' . $zip_error);
         return false;
     }
     $result = self::addFolderToZip(self::GetThemeDir($theme_id), self::GetThemeDir($theme_id), $zip);
     if ($result === false) {
         return false;
     }
     $zip->close();
     $fsize = filesize($tmp_file);
     if ($fsize === false) {
         return false;
     }
     if (round($fsize / 1048576) > 50) {
         unlink($tmp_file);
         return false;
     }
     $out_name = urlencode('mcr_' . $theme_id . '.zip');
     header('Content-Type:application/zip;name=' . $out_name);
     header('Content-Transfer-Encoding:binary');
     header('Content-Length:' . $fsize);
     header('Content-Disposition:attachment;filename=' . $out_name);
     header('Expires:0');
     header('Cache-Control:no-cache, must-revalidate');
     header('Pragma:no-cache');
     readfile($tmp_file);
     unlink($tmp_file);
 }
Пример #3
0
function POSTSafeMove($post_name, $tmp_dir = false)
{
    if (!POSTGood($post_name, false)) {
        return false;
    }
    if (!$tmp_dir) {
        $tmp_dir = MCRAFT . 'tmp/';
    }
    if (!is_dir($tmp_dir)) {
        $back = umask(0);
        mkdir($tmp_dir, 0775, true);
        umask($back);
    }
    $tmp_file = tmp_name($tmp_dir);
    if (!move_uploaded_file($_FILES[$post_name]['tmp_name'], $tmp_dir . $tmp_file)) {
        vtxtlog('[POSTSafeMove] --> "' . $tmp_dir . '" <-- ' . lng('WRITE_FAIL'));
        return false;
    }
    return array('tmp_name' => $tmp_file, 'name' => $_FILES[$post_name]['name'], 'size_mb' => round($_FILES[$post_name]['size'] / 1024 / 1024, 2));
}