Verify whether type is correct

`$this->info` can very well contain an empty array or possibly other values. This means that when this code path is called a PHP Fatal error might get thrown which is not what we want.
This commit is contained in:
Lukas Reschke 2015-01-08 18:33:35 +01:00
parent af269258d3
commit ceaaab6295
2 changed files with 15 additions and 18 deletions

View File

@ -29,21 +29,17 @@ if ($maxX === 0 || $maxY === 0) {
exit;
}
try {
$preview = new \OC\Preview(\OC_User::getUser(), 'files');
$info = \OC\Files\Filesystem::getFileInfo($file);
if (!$always and !$preview->isAvailable($info)) {
\OC_Response::setStatus(404);
} else {
$preview->setFile($file);
$preview->setMaxX($maxX);
$preview->setMaxY($maxY);
$preview->setScalingUp($scalingUp);
$preview->setKeepAspect($keepAspect);
$preview->showPreview();
}
$preview = new \OC\Preview(\OC_User::getUser(), 'files');
} catch (\Exception $e) {
\OC_Response::setStatus(500);
\OC_Log::write('core', $e->getmessage(), \OC_Log::DEBUG);
$info = \OC\Files\Filesystem::getFileInfo($file);
if (!$info instanceof OCP\Files\FileInfo || !$always && !$preview->isAvailable($info)) {
\OC_Response::setStatus(404);
} else {
$preview->setFile($file);
$preview->setMaxX($maxX);
$preview->setMaxY($maxY);
$preview->setScalingUp($scalingUp);
$preview->setKeepAspect($keepAspect);
$preview->showPreview();
}

View File

@ -200,14 +200,15 @@ class Preview {
/**
* set the path of the file you want a thumbnail from
* @param string $file
* @return \OC\Preview $this
* @return $this
*/
public function setFile($file) {
$this->file = $file;
$this->info = null;
if ($file !== '') {
$this->getFileInfo();
if($this->info !== null && $this->info !== false) {
if($this->info instanceof \OCP\Files\FileInfo) {
$this->mimeType = $this->info->getMimetype();
}
}