safer name for the updater downloads (even if removed after download) - reported by SHS`

git-svn-id: file:///svn/phpbb/trunk@7134 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen 2007-03-06 11:30:12 +00:00
parent 1070cf800f
commit f0755f6daf
2 changed files with 20 additions and 8 deletions

View file

@ -419,15 +419,20 @@ class compress_zip extends compress
/**
* Download archive
*/
function download($filename)
function download($filename, $download_name = false)
{
global $phpbb_root_path;
if ($download_name === false)
{
$download_name = $filename;
}
$mimetype = 'application/zip';
header('Pragma: no-cache');
header("Content-Type: $mimetype; name=\"$filename.zip\"");
header("Content-disposition: attachment; filename=$filename.zip");
header("Content-Type: $mimetype; name=\"$download_name.zip\"");
header("Content-disposition: attachment; filename=$download_name.zip");
$fp = fopen("{$phpbb_root_path}store/$filename.zip", 'rb');
while ($buffer = fread($fp, 1024))
@ -611,10 +616,15 @@ class compress_tar extends compress
/**
* Download archive
*/
function download($filename)
function download($filename, $download_name = false)
{
global $phpbb_root_path;
if ($download_name === false)
{
$download_name = $filename;
}
switch ($this->type)
{
case '.tar':
@ -635,8 +645,8 @@ class compress_tar extends compress
}
header('Pragma: no-cache');
header("Content-Type: $mimetype; name=\"$filename$this->type\"");
header("Content-disposition: attachment; filename=$filename$this->type");
header("Content-Type: $mimetype; name=\"$download_name$this->type\"");
header("Content-disposition: attachment; filename=$download_name$this->type");
$fp = fopen("{$phpbb_root_path}store/$filename$this->type", 'rb');
while ($buffer = fread($fp, 1024))

View file

@ -590,7 +590,9 @@ class install_update extends module
}
// Now update the installation or download the archive...
$archive_filename = 'update_' . $this->update_info['version']['from'] . '_to_' . $this->update_info['version']['to'];
$download_filename = 'update_' . $this->update_info['version']['from'] . '_to_' . $this->update_info['version']['to'];
$archive_filename = $download_filename . '_' . time() . '_' . unique_id();
$update_list = $cache->get('_update_list');
$conflicts = request_var('conflict', array('' => 0));
@ -749,7 +751,7 @@ class install_update extends module
{
$compress->close();
$compress->download($archive_filename);
$compress->download($archive_filename, $download_filename);
@unlink($phpbb_root_path . 'store/' . $archive_filename . $use_method);
exit;