fix that might solve strange uploading issues

This commit is contained in:
Arthur Schiwon 2011-04-17 01:17:34 +02:00
parent 85a6097c03
commit 8a5d1ffebe
3 changed files with 19 additions and 1 deletions

View file

@ -21,7 +21,8 @@ if(!empty($dir)) $dir .= '/';
$target='/' . stripslashes($dir) . $fileName;
if(isset($_SESSION['username'])
and $_SESSION['username'] and strpos($dir,'..') === false){
if(OC_FILESYSTEM::fromTmpFile($source,$target)){
if(OC_FILESYSTEM::fromUploadedFile($source,$target)){
// if(OC_FILES::move(dirname($source),basename($source), $dir, $fileName)){
echo json_encode(array( "status" => "success"));
exit();
}

View file

@ -69,6 +69,7 @@ class OC_FILESTORAGE{
public function fopen($path,$mode){}
public function toTmpFile($path){}//copy the file to a temporary file, used for cross-storage file actions
public function fromTmpFile($tmpPath,$path){}//copy a file from a temporary file, used for cross-storage file actions
public function fromUploadedFile($tmpPath,$path){}//copy a file from a temporary file, used for cross-storage file actions
public function getMimeType($path){}
public function delTree($path){}
public function find($path){}
@ -388,6 +389,17 @@ die( "oh nooo!" );
return false;
}
}
public function fromUploadedFile($tmpFile,$path){
$fileStats = stat($tmpFile);
if(move_uploaded_file($tmpFile,$this->datadir.$path)){
touch($this->datadir.$path, $fileStats['mtime'], $fileStats['atime']);
$this->notifyObservers($path,OC_FILEACTION_CREATE);
return true;
}else{
return false;
}
}
public function delTree($dir) {
$dirRelative=$dir;

View file

@ -339,6 +339,11 @@ class OC_FILESYSTEM{
return $storage->fromTmpFile($tmpFile,self::getInternalPath($path));
}
}
static public function fromUploadedFile($tmpFile,$path){
if(self::canWrite($path) and $storage=self::getStorage($path)){
return $storage->fromUploadedFile($tmpFile,self::getInternalPath($path));
}
}
static public function getMimeType($path){
if(self::canRead($path) and $storage=self::getStorage($path)){
return $storage->getMimeType(self::getInternalPath($path));