summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-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);