It didn't work for exports bigger than 1 MB.
An alternative would be to remove the limit from output buffer which would need memory for the whole export.
Another alternative would be to create a temporary file in output handler and bzwrite() to this file - that would work but it's complicated, especially if we want to output the file progressively - bzopen($tmp, 'w'), fopen($tmp, 'r').
if (function_exists('gzencode')) {
$return['gz'] = 'gzip';
}
- if (function_exists('bzcompress')) {
- $return['bz2'] = 'bzip2';
- }
return $return;
}
$output = $_POST["output"];
$ext = (ereg('sql', $_POST["format"]) ? "sql" : ($multi_table ? "tar" : "csv")); // multiple CSV packed to TAR
header("Content-Type: " .
- ($output == "bz2" ? "application/x-bzip" :
($output == "gz" ? "application/x-gzip" :
($ext == "tar" ? "application/x-tar" :
($ext == "sql" || $output != "file" ? "text/plain" : "text/csv") . "; charset=utf-8"
- ))));
- if ($output == "bz2") {
- ob_start('bzcompress', 1e6);
- }
+ )));
if ($output == "gz") {
ob_start('gzencode', 1e6);
}
}
$name = $file["name"][$key];
$tmp_name = $file["tmp_name"][$key];
- $content = file_get_contents($decompress && ereg('\\.gz$', $name) ? "compress.zlib://$tmp_name"
- : ($decompress && ereg('\\.bz2$', $name) ? "compress.bzip2://$tmp_name"
+ $content = file_get_contents($decompress && ereg('\\.gz$', $name)
+ ? "compress.zlib://$tmp_name"
: $tmp_name
- )); //! may not be reachable because of open_basedir
+ ); //! may not be reachable because of open_basedir
if ($decompress) {
$start = substr($content, 0, 3);
if (function_exists("iconv") && ereg("^\xFE\xFF|^\xFF\xFE", $start, $regs)) { // not ternary operator to save memory
$fp = false;
$query = $_POST["query"];
if ($_POST["webfile"]) {
- $fp = @fopen((file_exists("adminer.sql") ? "adminer.sql"
- : (file_exists("adminer.sql.gz") ? "compress.zlib://adminer.sql.gz"
- : "compress.bzip2://adminer.sql.bz2"
- )), "rb");
+ $fp = @fopen((file_exists("adminer.sql")
+ ? "adminer.sql"
+ : "compress.zlib://adminer.sql.gz"
+ ), "rb");
$query = ($fp ? fread($fp, 1e6) : false);
} elseif ($_FILES && $_FILES["sql_file"]["error"][0] != 4) { // 4 - UPLOAD_ERR_NO_FILE
$query = get_file("sql_file", true);
echo checkbox("only_errors", 1, $_POST["only_errors"], lang('Show only errors')) . "\n";
print_fieldset("webfile", lang('From server'), $_POST["webfile"], "document.getElementById('form')['only_errors'].checked = true; ");
-$compress = array();
-foreach (array("gz" => "zlib", "bz2" => "bz2") as $key => $val) {
- if (extension_loaded($val)) {
- $compress[] = ".$key";
- }
-}
-echo lang('Webserver file %s', "<code>adminer.sql" . ($compress ? "[" . implode("|", $compress) . "]" : "") . "</code>");
+echo lang('Webserver file %s', "<code>adminer.sql" . (extension_loaded("zlib") ? "[.gz]" : "") . "</code>");
echo ' <input type="submit" name="webfile" value="' . lang('Run file') . '">';
echo "</div></fieldset>\n";
Print run time next to executed queries
Disable SQL export when applying functions in select
Allow using lang() in plugins (customization)
+Remove bzip2 compression support
MySQL: Optimize create table page and Editor navigation
MySQL: Display bit type as binary number
MySQL: Improve export of binary data types
Blob download and image display in edit form (important for Editor with hidden fields in select and SQL command)
Add title to Logout, edit (in select) and select (in menu) for style "hever"
Export by GET parameters
-Only first part of big BZ2 export is readable, files are missing in TAR
+Files are missing in TAR
Draggable columns in alter table (thanks to Michal Manak)
<option class> for system databases and schemas - information_schema and driver-specific (thanks to Vaclav Novotny)
Define foreign keys name - http://forum.zdrojak.root.cz/index.php?topic=185.msg1255#msg1255