mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
When moving a file from/to a temporary location, also update the file access/modification times.
When PHP moves a file across filesystem boundaries, it does not update the access/modification times. Thus do it manually so that this information is not lost.
This commit is contained in:
parent
49a78333fb
commit
f2627dd757
1 changed files with 4 additions and 0 deletions
|
|
@ -360,7 +360,9 @@ class OC_FILESTORAGE_LOCAL extends OC_FILESTORAGE{
|
|||
public function toTmpFile($path){
|
||||
$tmpFolder=sys_get_temp_dir();
|
||||
$filename=tempnam($tmpFolder,'OC_TEMP_FILE_'.substr($path,strrpos($path,'.')));
|
||||
$fileStats = stat($this->datadir.$path);
|
||||
if(copy($this->datadir.$path,$filename)){
|
||||
touch($filename, $fileStats['mtime'], $fileStats['atime']);
|
||||
$this->notifyObservers($path,OC_FILEACTION_READ);
|
||||
return $filename;
|
||||
}else{
|
||||
|
|
@ -369,7 +371,9 @@ class OC_FILESTORAGE_LOCAL extends OC_FILESTORAGE{
|
|||
}
|
||||
|
||||
public function fromTmpFile($tmpFile,$path){
|
||||
$fileStats = stat($tmpFile);
|
||||
if(rename($tmpFile,$this->datadir.$path)){
|
||||
touch($this->datadir.$path, $fileStats['mtime'], $fileStats['atime']);
|
||||
$this->notifyObservers($path,OC_FILEACTION_CREATE);
|
||||
return true;
|
||||
}else{
|
||||
|
|
|
|||
Loading…
Reference in a new issue