diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/archive/tar.php | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/archive/tar.php b/lib/archive/tar.php index c8b3d5e6266..f6efd6d0ecc 100644 --- a/lib/archive/tar.php +++ b/lib/archive/tar.php @@ -56,14 +56,21 @@ class OC_Archive_TAR extends OC_Archive{ * @return bool */ function addFolder($path){ - $tmpBase=get_temp_dir().'/'; + $tmpBase=OC_Helper::tmpFolder(); if(substr($path,-1,1)!='/'){ $path.='/'; } if($this->fileExists($path)){ return false; } - mkdir($tmpBase.$path); + $parts=explode('/',$path); + $folder=$tmpBase; + foreach($parts as $part){ + $folder.='/'.$part; + if(!is_dir($folder)){ + mkdir($folder); + } + } $result=$this->tar->addModify(array($tmpBase.$path),'',$tmpBase); rmdir($tmpBase.$path); $this->fileList=false; |