fix renameFromStorage messing with folder mimetype

Signed-off-by: Robin Appelman <robin@icewind.nl>
pull/21628/head
Robin Appelman 6 years ago
parent ad7798f9c9
commit c8cf2e8a5b
No known key found for this signature in database
GPG Key ID: 42B69D8A64526EFB
  1. 17
      lib/private/Files/Cache/Updater.php

@ -28,6 +28,7 @@
namespace OC\Files\Cache;
use OC\Files\FileInfo;
use OCP\Files\Cache\ICacheEntry;
use OCP\Files\Cache\IUpdater;
use OCP\Files\Storage\IStorage;
@ -187,7 +188,9 @@ class Updater implements IUpdater {
$sourceUpdater = $sourceStorage->getUpdater();
$sourcePropagator = $sourceStorage->getPropagator();
if ($sourceCache->inCache($source)) {
$sourceInfo = $sourceCache->get($source);
if ($sourceInfo !== false) {
if ($this->cache->inCache($target)) {
$this->cache->remove($target);
}
@ -197,13 +200,13 @@ class Updater implements IUpdater {
} else {
$this->cache->moveFromCache($sourceCache, $source, $target);
}
}
if (pathinfo($source, PATHINFO_EXTENSION) !== pathinfo($target, PATHINFO_EXTENSION)) {
// handle mime type change
$mimeType = $this->storage->getMimeType($target);
$fileId = $this->cache->getId($target);
$this->cache->update($fileId, ['mimetype' => $mimeType]);
if (pathinfo($source, PATHINFO_EXTENSION) !== pathinfo($target, PATHINFO_EXTENSION) && $sourceInfo->getMimeType() !== FileInfo::MIMETYPE_FOLDER) {
// handle mime type change
$mimeType = $this->storage->getMimeType($target);
$fileId = $this->cache->getId($target);
$this->cache->update($fileId, ['mimetype' => $mimeType]);
}
}
if ($sourceCache instanceof Cache) {

Loading…
Cancel
Save