diff --git a/app/code/Magento/Catalog/Model/ImageUploader.php b/app/code/Magento/Catalog/Model/ImageUploader.php
index 7599e46f76e30..7f047327460ca 100644
--- a/app/code/Magento/Catalog/Model/ImageUploader.php
+++ b/app/code/Magento/Catalog/Model/ImageUploader.php
@@ -69,14 +69,9 @@ class ImageUploader
/**
* List of allowed image mime types
*
- * @var array
+ * @var string[]
*/
- private $allowedMimeTypes = [
- 'image/jpg',
- 'image/jpeg',
- 'image/gif',
- 'image/png'
- ];
+ private $allowedMimeTypes;
/**
* ImageUploader constructor
@@ -89,6 +84,7 @@ class ImageUploader
* @param string $baseTmpPath
* @param string $basePath
* @param string[] $allowedExtensions
+ * @param string[] $allowedMimeTypes
*/
public function __construct(
\Magento\MediaStorage\Helper\File\Storage\Database $coreFileStorageDatabase,
@@ -98,7 +94,8 @@ public function __construct(
\Psr\Log\LoggerInterface $logger,
$baseTmpPath,
$basePath,
- $allowedExtensions
+ $allowedExtensions,
+ $allowedMimeTypes = []
) {
$this->coreFileStorageDatabase = $coreFileStorageDatabase;
$this->mediaDirectory = $filesystem->getDirectoryWrite(\Magento\Framework\App\Filesystem\DirectoryList::MEDIA);
@@ -108,6 +105,7 @@ public function __construct(
$this->baseTmpPath = $baseTmpPath;
$this->basePath = $basePath;
$this->allowedExtensions = $allowedExtensions;
+ $this->allowedMimeTypes = $allowedMimeTypes;
}
/**
@@ -167,7 +165,7 @@ public function getBasePath()
}
/**
- * Retrieve base path
+ * Retrieve allowed extensions
*
* @return string[]
*/
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ImageUploaderTest.php b/app/code/Magento/Catalog/Test/Unit/Model/ImageUploaderTest.php
index bd8871c21de9e..4435446f77bfb 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/ImageUploaderTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/ImageUploaderTest.php
@@ -69,10 +69,17 @@ class ImageUploaderTest extends \PHPUnit\Framework\TestCase
/**
* Allowed extensions
*
- * @var string
+ * @var array
*/
private $allowedExtensions;
+ /**
+ * Allowed mime types
+ *
+ * @var array
+ */
+ private $allowedMimeTypes;
+
protected function setUp()
{
$this->coreFileStorageDatabaseMock = $this->createMock(
@@ -97,6 +104,7 @@ protected function setUp()
$this->baseTmpPath = 'base/tmp/';
$this->basePath = 'base/real/';
$this->allowedExtensions = ['.jpg'];
+ $this->allowedMimeTypes = ['image/jpg', 'image/jpeg', 'image/gif', 'image/png'];
$this->imageUploader =
new \Magento\Catalog\Model\ImageUploader(
@@ -107,7 +115,8 @@ protected function setUp()
$this->loggerMock,
$this->baseTmpPath,
$this->basePath,
- $this->allowedExtensions
+ $this->allowedExtensions,
+ $this->allowedMimeTypes
);
}
diff --git a/app/code/Magento/Catalog/etc/di.xml b/app/code/Magento/Catalog/etc/di.xml
index 3eecfb3c7453a..4d3a8a452ead9 100644
--- a/app/code/Magento/Catalog/etc/di.xml
+++ b/app/code/Magento/Catalog/etc/di.xml
@@ -211,6 +211,12 @@
- gif
- png
+
+ - image/jpg
+ - image/jpeg
+ - image/gif
+ - image/png
+
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/ImageUploaderTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/ImageUploaderTest.php
index 723ff963e2bfc..ea151c2f68750 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Model/ImageUploaderTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/ImageUploaderTest.php
@@ -46,7 +46,8 @@ protected function setUp()
[
'baseTmpPath' => $this->mediaDirectory->getRelativePath('tmp'),
'basePath' => __DIR__,
- 'allowedExtensions' => ['jpg', 'jpeg', 'gif', 'png']
+ 'allowedExtensions' => ['jpg', 'jpeg', 'gif', 'png'],
+ 'allowedMimeTypes' => ['image/jpg', 'image/jpeg', 'image/gif', 'image/png']
]
);
}