Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2019-11-04 17:00:01 +0300
committerBackportbot <backportbot-noreply@rullzer.com>2019-11-07 13:04:59 +0300
commitd0db3694645a5dbd7b1155e953728c1aa493d55b (patch)
tree3c5e80364357867463bd7ea7ce9f89582e62d9ed
parent00b838ca6ceefd20c6fe3a1da33798d70412a2c6 (diff)
switch to Files Node API for zip generation
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
-rw-r--r--lib/private/legacy/files.php19
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/private/legacy/files.php b/lib/private/legacy/files.php
index 577392f1edc..140c02e77b6 100644
--- a/lib/private/legacy/files.php
+++ b/lib/private/legacy/files.php
@@ -177,10 +177,21 @@ class OC_Files {
foreach ($files as $file) {
$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, $fileTime);
+ $userFolder = \OC::$server->getRootFolder()->get(\OC\Files\Filesystem::getRoot());
+ $file = $userFolder->get($file);
+ if($file instanceof \OC\Files\Node\File) {
+ $fh = $file->fopen('r');
+ $fileSize = $file->getSize();
+ $fileTime = $file->getMTime();
+ } else {
+ // File is not a file? …
+ \OC::$server->getLogger()->debug(
+ 'File given, but no Node available. Name {file}',
+ [ 'app' => 'files', 'file' => $file ]
+ );
+ continue;
+ }
+ $streamer->addFileFromStream($fh, $file->getName(), $fileSize, $fileTime);
fclose($fh);
} elseif (\OC\Files\Filesystem::is_dir($file)) {
$streamer->addDirRecursive($file);