]> source.dussan.org Git - nextcloud-server.git/commitdiff
create a new filename when the uploaded file already exist
authorRobin Appelman <icewind@owncloud.com>
Sun, 15 Apr 2012 15:30:07 +0000 (17:30 +0200)
committerRobin Appelman <icewind@owncloud.com>
Sun, 15 Apr 2012 15:34:53 +0000 (17:34 +0200)
files/ajax/upload.php
files/js/files.js

index 76ea65fe933a03c8058549c03be4e22cefba5719..b04796e3248591ae38a61397b1b708facb946248 100644 (file)
@@ -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);
index 2d943d85cd415d561b6194bdfe74f9c7e722f0a0..3ce95f992d0b3835cd52a7dd2bb713f7ecd7811c 100644 (file)
@@ -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;
+}