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; }
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); }
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)); }