diff options
author | Robin Appelman <icewind@owncloud.com> | 2012-04-15 17:30:07 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2012-04-15 17:34:53 +0200 |
commit | 8ecddb5bc311a7d9bb5def6783b8a71f09a8daa3 (patch) | |
tree | 4a5e65e7a31404ea5465f75d895b2bd95e93a77b /files | |
parent | 74ba09f95c57bc0cc8d7e8617cefe26f13054799 (diff) | |
download | nextcloud-server-8ecddb5bc311a7d9bb5def6783b8a71f09a8daa3.tar.gz nextcloud-server-8ecddb5bc311a7d9bb5def6783b8a71f09a8daa3.zip |
create a new filename when the uploaded file already exist
Diffstat (limited to 'files')
-rw-r--r-- | files/ajax/upload.php | 3 | ||||
-rw-r--r-- | files/js/files.js | 23 |
2 files changed, 22 insertions, 4 deletions
diff --git a/files/ajax/upload.php b/files/ajax/upload.php index 76ea65fe933..b04796e3248 100644 --- a/files/ajax/upload.php +++ b/files/ajax/upload.php @@ -47,11 +47,10 @@ $result=array(); if(strpos($dir,'..') === false){ $fileCount=count($files['name']); for($i=0;$i<$fileCount;$i++){ - // $target=stripslashes($dir) . $files['name'][$i]; $target = OC_Helper::buildNotExistingFileName(stripslashes($dir), $files['name'][$i]); if(is_uploaded_file($files['tmp_name'][$i]) and OC_Filesystem::fromTmpFile($files['tmp_name'][$i],$target)){ $meta=OC_FileCache::getCached($target); - $result[]=array( "status" => "success", 'mime'=>$meta['mimetype'],'size'=>$meta['size'],'name'=>$files['name'][$i]); + $result[]=array( "status" => "success", 'mime'=>$meta['mimetype'],'size'=>$meta['size'],'name'=>basename($target)); } } OC_JSON::encodedPrint($result); diff --git a/files/js/files.js b/files/js/files.js index 2d943d85cd4..3ce95f992d0 100644 --- a/files/js/files.js +++ b/files/js/files.js @@ -211,12 +211,12 @@ $(document).ready(function() { var size=t('files','Pending'); } if(files){ - FileList.addFile(files[i].name,size,date,true); + FileList.addFile(getUniqueName(files[i].name),size,date,true); } } }else{ var filename=this.value.split('\\').pop(); //ie prepends C:\fakepath\ in front of the filename - FileList.addFile(filename,'Pending',date,true); + FileList.addFile(getUniqueName(filename),'Pending',date,true); } //clone the upload form and hide the new one to allow users to start a new upload while the old one is still uploading @@ -570,3 +570,22 @@ function getMimeIcon(mime, ready){ } } getMimeIcon.cache={}; + +function getUniqueName(name){ + if($('tr').filterAttr('data-file',name).length>0){ + var parts=name.split('.'); + var extension=parts.pop(); + var base=parts.join('.'); + numMatch=base.match(/\((\d+)\)/); + var num=2; + if(numMatch && numMatch.length>0){ + num=parseInt(numMatch[numMatch.length-1])+1; + base=base.split('(') + base.pop(); + base=base.join('(').trim(); + } + name=base+' ('+num+').'+extension; + return getUniqueName(name); + } + return name; +} |