diff options
author | Bjoern Schiessle <schiessle@owncloud.com> | 2013-11-28 18:52:58 +0100 |
---|---|---|
committer | Bjoern Schiessle <schiessle@owncloud.com> | 2013-11-28 18:52:58 +0100 |
commit | eeb31420fe2185b4caf2fbf564b5ac6177d348c3 (patch) | |
tree | 6b1ce197307885193d14c1cf8db16a998046b1c2 | |
parent | a1d2f0f51605b6c4b2a204e6650c683881052a1a (diff) | |
download | nextcloud-server-eeb31420fe2185b4caf2fbf564b5ac6177d348c3.tar.gz nextcloud-server-eeb31420fe2185b4caf2fbf564b5ac6177d348c3.zip |
we need to be able to set the mimetype manually
-rwxr-xr-x | lib/private/preview.php | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/lib/private/preview.php b/lib/private/preview.php index 266f7795f12..7f219850bb3 100755 --- a/lib/private/preview.php +++ b/lib/private/preview.php @@ -9,7 +9,7 @@ * Thumbnails: * structure of filename: * /data/user/thumbnails/pathhash/x-y.png - * + * */ namespace OC; @@ -40,6 +40,7 @@ class Preview { private $maxX; private $maxY; private $scalingup; + private $mimetype; //preview images object /** @@ -59,11 +60,18 @@ class Preview { * @param int $maxX The maximum X size of the thumbnail. It can be smaller depending on the shape of the image * @param int $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image * @param bool $scalingUp Disable/Enable upscaling of previews - * @return mixed (bool / string) + * @return mixed (bool / string) * false if thumbnail does not exist * path to thumbnail if thumbnail exists */ public function __construct($user='', $root='/', $file='', $maxX=1, $maxY=1, $scalingUp=true) { + //init fileviews + if($user === ''){ + $user = \OC_User::getUser(); + } + $this->fileView = new \OC\Files\View('/' . $user . '/' . $root); + $this->userView = new \OC\Files\View('/' . $user); + //set config $this->configMaxX = \OC_Config::getValue('preview_max_x', null); $this->configMaxY = \OC_Config::getValue('preview_max_y', null); @@ -75,13 +83,6 @@ class Preview { $this->setMaxY($maxY); $this->setScalingUp($scalingUp); - //init fileviews - if($user === ''){ - $user = \OC_User::getUser(); - } - $this->fileView = new \OC\Files\View('/' . $user . '/' . $root); - $this->userView = new \OC\Files\View('/' . $user); - $this->preview = null; //check if there are preview backends @@ -166,9 +167,16 @@ class Preview { */ public function setFile($file) { $this->file = $file; + if ($file !== '') { + $this->mimetype = $this->fileView->getMimeType($this->file); + } return $this; } + public function setMimetype($mimetype) { + $this->mimetype = $mimetype; + } + /** * @brief set the the max width of the preview * @param int $maxX @@ -265,7 +273,7 @@ class Preview { $fileInfo = $this->fileView->getFileInfo($file); $fileId = $fileInfo['fileid']; - + $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; $this->userView->deleteAll($previewPath); $this->userView->rmdir($previewPath); @@ -274,7 +282,7 @@ class Preview { /** * @brief check if thumbnail or bigger version of thumbnail of file is cached - * @return mixed (bool / string) + * @return mixed (bool / string) * false if thumbnail does not exist * path to thumbnail if thumbnail exists */ @@ -386,11 +394,10 @@ class Preview { } if(is_null($this->preview)) { - $mimetype = $this->fileView->getMimeType($file); $preview = null; foreach(self::$providers as $supportedMimetype => $provider) { - if(!preg_match($supportedMimetype, $mimetype)) { + if(!preg_match($supportedMimetype, $this->mimetype)) { continue; } @@ -516,7 +523,7 @@ class Preview { $cropY = 0; $image->crop($cropX, $cropY, $x, $y); - + $this->preview = $image; return; } @@ -598,7 +605,7 @@ class Preview { public static function post_write($args) { self::post_delete($args); } - + public static function post_delete($args) { $path = $args['path']; if(substr($path, 0, 1) === '/') { |