if ($fileid && $dir !== '') {
$baseFolder = $this->rootFolder->getUserFolder($userId);
$nodes = $baseFolder->getById((int) $fileid);
- $nodePath = $baseFolder->getRelativePath($nodes[0]->getPath());
- $relativePath = $nodePath ? dirname($nodePath) : '';
- // If the requested path does not contain the file id
- // or if the requested path is not the file id itself
- if (count($nodes) === 1 && $relativePath !== $dir && $nodePath !== $dir) {
- return $this->redirectToFile((int) $fileid);
+ if (!empty($nodes)) {
+ $nodePath = $baseFolder->getRelativePath($nodes[0]->getPath());
+ $relativePath = $nodePath ? dirname($nodePath) : '';
+ // If the requested path does not contain the file id
+ // or if the requested path is not the file id itself
+ if (count($nodes) === 1 && $relativePath !== $dir && $nodePath !== $dir) {
+ return $this->redirectToFile((int) $fileid);
+ }
+ } else { // fileid does not exist anywhere
+ $fileNotFound = true;
}
}