diff --git a/lib/private/Streamer.php b/lib/private/Streamer.php index 75877ab166..52eeea422e 100644 --- a/lib/private/Streamer.php +++ b/lib/private/Streamer.php @@ -76,8 +76,9 @@ class Streamer { $file = $dir . '/' . $filename; if(\OC\Files\Filesystem::is_file($file)) { $filesize = \OC\Files\Filesystem::filesize($file); + $fileTime = \OC\Files\Filesystem::filemtime($file); $fh = \OC\Files\Filesystem::fopen($file, 'r'); - $this->addFileFromStream($fh, $internalDir . $filename, $filesize); + $this->addFileFromStream($fh, $internalDir . $filename, $filesize, $fileTime); fclose($fh); }elseif(\OC\Files\Filesystem::is_dir($file)) { $this->addDirRecursive($file, $internalDir); @@ -93,11 +94,18 @@ class Streamer { * @param int $size Filesize * @return bool $success */ - public function addFileFromStream($stream, $internalName, $size){ + public function addFileFromStream($stream, $internalName, $size, $time) { + $options = []; + if ($time) { + $options = [ + 'timestamp' => $time + ]; + } + if ($this->streamerInstance instanceof ZipStreamer) { - return $this->streamerInstance->addFileFromStream($stream, $internalName); + return $this->streamerInstance->addFileFromStream($stream, $internalName, $options); } else { - return $this->streamerInstance->addFileFromStream($stream, $internalName, $size); + return $this->streamerInstance->addFileFromStream($stream, $internalName, $size, $options); } } diff --git a/lib/private/legacy/files.php b/lib/private/legacy/files.php index 064fa9e1d7..b6c6857a1b 100644 --- a/lib/private/legacy/files.php +++ b/lib/private/legacy/files.php @@ -153,8 +153,9 @@ class OC_Files { $file = $dir . '/' . $file; if (\OC\Files\Filesystem::is_file($file)) { $fileSize = \OC\Files\Filesystem::filesize($file); + $fileTime = \OC\Files\Filesystem::filemtime($file); $fh = \OC\Files\Filesystem::fopen($file, 'r'); - $streamer->addFileFromStream($fh, basename($file), $fileSize); + $streamer->addFileFromStream($fh, basename($file), $fileSize, $fileTime); fclose($fh); } elseif (\OC\Files\Filesystem::is_dir($file)) { $streamer->addDirRecursive($file);