From ceae4fa7b45db51313cb78fd7441e8b3e99221f9 Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Sat, 20 Aug 2011 12:36:20 -0400 Subject: [PATCH] Fix bugs preventing file upload in shared folders with write permission --- apps/files_sharing/sharedstorage.php | 14 +++++++++----- files/ajax/upload.php | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/files_sharing/sharedstorage.php b/apps/files_sharing/sharedstorage.php index e2147bea49..afe173ad0c 100644 --- a/apps/files_sharing/sharedstorage.php +++ b/apps/files_sharing/sharedstorage.php @@ -494,11 +494,15 @@ class OC_Filestorage_Shared extends OC_Filestorage { } } - public function fromUploadedFile($tmpPath, $path) { - $source = $this->getSource($tmpPath); - if ($source) { - $storage = OC_Filesystem::getStorage($source); - return $storage->fromUploadedFile($this->getInternalPath($source), $path); + public function fromUploadedFile($tmpFile, $path) { + if ($this->is_writeable($path)) { + $source = $this->getSource($path); + if ($source) { + $storage = OC_Filesystem::getStorage($source); + return $storage->fromUploadedFile($tmpFile, $this->getInternalPath($source)); + } + } else { + return false; } } diff --git a/files/ajax/upload.php b/files/ajax/upload.php index 4247aeca28..2c0afa33a7 100644 --- a/files/ajax/upload.php +++ b/files/ajax/upload.php @@ -33,7 +33,7 @@ $result=array(); if(strpos($dir,'..') === false){ $fileCount=count($files['name']); for($i=0;$i<$fileCount;$i++){ - $target='/' . stripslashes($dir) . $files['name'][$i]; + $target=stripslashes($dir) . $files['name'][$i]; if(OC_Filesystem::fromUploadedFile($files['tmp_name'][$i],$target)){ $result[]=array( "status" => "success", 'mime'=>OC_Filesystem::getMimeType($target),'size'=>OC_Filesystem::filesize($target),'name'=>$files['name'][$i]); }