From: Thomas Mueller Date: Fri, 16 Nov 2012 10:50:57 +0000 (+0100) Subject: normalize the path once in upload.php is enough - THX Robin for this hint X-Git-Tag: v5.0.0alpha1~438^2~1 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=2b192a75c41c1ef1d02677cd08f5781a54391509;p=nextcloud-server.git normalize the path once in upload.php is enough - THX Robin for this hint --- diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php index 92871059936..c3d3199a003 100644 --- a/apps/files/ajax/upload.php +++ b/apps/files/ajax/upload.php @@ -48,15 +48,11 @@ if(strpos($dir, '..') === false) { $fileCount=count($files['name']); for($i=0;$i<$fileCount;$i++) { $target = OCP\Files::buildNotExistingFileName(stripslashes($dir), $files['name'][$i]); + // $path needs to be normalized - this failed within drag'n'drop upload to a sub-folder + $target = OC_Filesystem::normalizePath($target); if(is_uploaded_file($files['tmp_name'][$i]) and OC_Filesystem::fromTmpFile($files['tmp_name'][$i], $target)) { $meta = OC_FileCache::get($target); $id = OC_FileCache::getId($target); - // in case the upload goes to a sub directory getID() returns -1 and $target needs to be normalized - // calling normalizePath() inside getId() causes endless scan. - if ($id == -1) { - $path = OC_Filesystem::normalizePath($target); - $id = OC_FileCache::getId($path); - } $result[]=array( "status" => "success", 'mime'=>$meta['mimetype'], 'size'=>$meta['size'], 'id'=>$id, 'name'=>basename($target)); } } diff --git a/lib/filecache.php b/lib/filecache.php index 2a389dfc3ca..4a7dbd0250d 100644 --- a/lib/filecache.php +++ b/lib/filecache.php @@ -43,8 +43,6 @@ class OC_FileCache{ * - versioned */ public static function get($path, $root=false) { - // $path needs to be normalized - this failed within drag'n'drop upload to a subfolder - $path = OC_Filesystem::normalizePath($path); if(OC_FileCache_Update::hasUpdated($path, $root)) { if($root===false) {//filesystem hooks are only valid for the default root OC_Hook::emit('OC_Filesystem', 'post_write', array('path'=>$path));