Skip to content

Commit

Permalink
Use IPreviewNode to fix trashbin thumbnails - fixes #30189
Browse files Browse the repository at this point in the history
  • Loading branch information
DeepDiver1975 committed Apr 25, 2018
1 parent 01e6d4e commit 8279894
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 11 deletions.
30 changes: 19 additions & 11 deletions apps/files_trashbin/ajax/preview.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,17 @@
exit;
}

try{
$preview = new \OC\Preview(\OC_User::getUser(), 'files_trashbin/files', $file);
$view = new \OC\Files\View('/'.\OC_User::getUser(). '/files_trashbin/files');
if ($view->is_dir($file)) {
try {
$userFolder = \OC::$server->getRootFolder()->getUserFolder(\OC_User::getUser());
/** @var \OCP\Files\Folder $trashFolder */
$trashFolder = $userFolder->getParent()->get('files_trashbin/files');
/** @var \OCP\Files\File | \OCP\Files\IPreviewNode $file */
$file = $trashFolder->get($file);

if ($file->getType() === \OCP\Files\FileInfo::TYPE_FOLDER) {
$mimetype = 'httpd/unix-directory';
} else {
$pathInfo = pathinfo(ltrim($file, '/'));
$pathInfo = pathinfo(ltrim($file->getName(), '/'));
$fileName = $pathInfo['basename'];
// if in root dir
if ($pathInfo['dirname'] === '.') {
Expand All @@ -65,13 +69,17 @@
}
$mimetype = \OC::$server->getMimeTypeDetector()->detectPath($fileName);
}
$preview->setMimetype($mimetype);
$preview->setMaxX($maxX);
$preview->setMaxY($maxY);
$preview->setScalingUp($scalingUp);

$preview->showPreview();
}catch(\Exception $e) {
$image = $file->getThumbnail([
'x' => $maxX,
'y' => $maxY,
'scalingup' => $scalingUp,
'mimeType' => $mimetype
]);

$image->show();

} catch(\Exception $e) {
\OC_Response::setStatus(500);
\OCP\Util::writeLog('core', $e->getmessage(), \OCP\Util::DEBUG);
}
3 changes: 3 additions & 0 deletions lib/private/Files/Node/File.php
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,9 @@ public function getThumbnail($options) {
$preview->setScalingUp($scalingUp);
$preview->setMode($mode);
$preview->setKeepAspect($keepAspect);
if (array_key_exists('mimeType', $options)) {
$preview->setMimetype($options['mimeType']);
}
return $preview->getPreview();
}
}

0 comments on commit 8279894

Please sign in to comment.