normalize the path once in upload.php is enough - THX Robin for this hint

This commit is contained in:
Thomas Mueller 2012-11-16 11:50:57 +01:00
parent 7af4cf48c9
commit 2b192a75c4
2 changed files with 2 additions and 8 deletions

View File

@ -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));
}
}

View File

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