From 50cc5d5921f254086cf0e6a62d881419754bcf57 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 19 Aug 2012 05:54:16 +0200 Subject: fix creating nested folders inside tar files --- lib/archive/tar.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'lib/archive') 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; -- cgit v1.2.3