create a new filename when the uploaded file already exist

This commit is contained in:
Robin Appelman 2012-04-15 17:30:07 +02:00
parent 74ba09f95c
commit 8ecddb5bc3
2 changed files with 22 additions and 4 deletions

View 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);

View 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;
}