aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_compress.php
diff options
context:
space:
mode:
authorPaul S. Owen <psotfx@users.sourceforge.net>2003-08-12 01:37:49 +0000
committerPaul S. Owen <psotfx@users.sourceforge.net>2003-08-12 01:37:49 +0000
commita4ac56c7985d0091215d2488233ec20cc6bb20a8 (patch)
tree8110350c7a05365ccf1ac913ff976fbcdfd871fb /phpBB/includes/functions_compress.php
parent9183068332def79be95b0657baced1dd8593ae2f (diff)
downloadforums-a4ac56c7985d0091215d2488233ec20cc6bb20a8.tar
forums-a4ac56c7985d0091215d2488233ec20cc6bb20a8.tar.gz
forums-a4ac56c7985d0091215d2488233ec20cc6bb20a8.tar.bz2
forums-a4ac56c7985d0091215d2488233ec20cc6bb20a8.tar.xz
forums-a4ac56c7985d0091215d2488233ec20cc6bb20a8.zip
Don't write out when closing unless a file actually exists ...
git-svn-id: file:///svn/phpbb/trunk@4381 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/functions_compress.php')
-rw-r--r--phpBB/includes/functions_compress.php34
1 files changed, 29 insertions, 5 deletions
diff --git a/phpBB/includes/functions_compress.php b/phpBB/includes/functions_compress.php
index 0b28ec5650..f06121c2cf 100644
--- a/phpBB/includes/functions_compress.php
+++ b/phpBB/includes/functions_compress.php
@@ -86,6 +86,22 @@ class compress
$this->data($name, $src);
return true;
}
+
+ function methods()
+ {
+ $methods = array('tar');
+
+ foreach (array('tar.gz' => 'zlib', 'tar.bz2' => 'bz2', 'zip' => 'zlib') as $type => $module)
+ {
+ if (!@extension_loaded($module))
+ {
+ break;
+ }
+ $methods[] = $type;
+ }
+
+ return $methods;
+ }
}
// Zip creation class from phpMyAdmin 2.3.0 © Tobias Ratschiller, Olivier Müller, Loïc Chapeaux,
@@ -182,10 +198,11 @@ class compress_zip extends compress
sort($mkdir_ary);
foreach ($mkdir_ary as $dir)
{
- if (!@mkdir($dir))
+ if (!@mkdir($dir, 0777))
{
trigger_error("Could not create directory $dir");
}
+ @chmod("$dir", 0777);
}
}
@@ -219,6 +236,7 @@ class compress_zip extends compress
{
trigger_error("Could not create $filename");
}
+ @chmod($filename, 0777);
if (!($gzfp = gzopen($filename . '.gz', 'rb')))
{
@@ -239,6 +257,7 @@ class compress_zip extends compress
{
trigger_error("Could not create $filename");
}
+ @chmod($filename, 0777);
fwrite($fp, fread($this->fp, $seek['uc_size']));
fclose($fp);
@@ -248,8 +267,11 @@ class compress_zip extends compress
function close()
{
- // Write out central file directory and footer
- fwrite($this->fp, $this->file());
+ // Write out central file directory and footer ... if it exists
+ if (sizeof($this->ctrl_dir))
+ {
+ fwrite($this->fp, $this->file());
+ }
fclose($this->fp);
}
@@ -395,10 +417,11 @@ class compress_tar extends compress
if ($filetype == 5)
{
- if (!@mkdir($dst . $filename))
+ if (!@mkdir("$dst$filename", 0777))
{
trigger_error("Could not create directory $filename");
}
+ @chmod("$dst$filename", 0777);
continue;
}
else
@@ -406,10 +429,11 @@ class compress_tar extends compress
$tmp = unpack("A12size", substr($buffer, 124, 12));
$filesize = octdec((int) trim($tmp['size']));
- if (!($fp = fopen($dst . $filename, 'wb')))
+ if (!($fp = fopen("$dst$filename", 'wb')))
{
trigger_error("Could create file $filename");
}
+ @chmod("$dst$filename", 0777);
$size = 0;
continue;