From f9bfd48e12b2e9a50c8b38f991b56f4da194d911 Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@arthur-schiwon.de>
Date: Mon, 4 Nov 2019 15:00:01 +0100
Subject: [PATCH] switch to Files Node API for zip generation

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
---
 lib/private/legacy/files.php | 19 +++++++++++++++----
 1 file 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);
-- 
GitLab