From: Robin Appelman Date: Sat, 14 Jan 2012 20:13:46 +0000 (+0100) Subject: fix issue with moving music files X-Git-Tag: v3.0~54 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=f4ce399162b2708fd72ea21be9d1f8dc8da15217;p=nextcloud-server.git fix issue with moving music files --- diff --git a/lib/files.php b/lib/files.php index 88b559059f0..9ae5320ad1d 100644 --- a/lib/files.php +++ b/lib/files.php @@ -183,8 +183,8 @@ class OC_Files { */ public static function move($sourceDir,$source,$targetDir,$target){ if(OC_User::isLoggedIn()){ - $targetFile=$targetDir.'/'.$target; - $sourceFile=$sourceDir.'/'.$source; + $targetFile=self::normalizePath($targetDir.'/'.$target); + $sourceFile=self::normalizePath($sourceDir.'/'.$source); return OC_Filesystem::rename($sourceFile,$targetFile); } } @@ -305,4 +305,19 @@ class OC_Files { $content.= "Options -Indexes\n"; @file_put_contents(OC::$SERVERROOT.'/.htaccess', $content); //supress errors in case we don't have permissions for it } + + /** + * normalize a path, removing any double, add leading /, etc + * @param string $path + * @return string + */ + static public function normalizePath($path){ + $path='/'.$path; + $old=''; + while($old!=$path){//replace any multiplicity of slashes with a single one + $old=$path; + $path=str_replace('//','/',$path); + } + return $path; + } }