Skip to content

Commit 83e8056

Browse files
author
Roman Lytvynenko
committed
MC-29519: Category image saves to pub/media/catalog/tmp/category
1 parent 9297939 commit 83e8056

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

app/code/Magento/Catalog/Model/Category/Attribute/Backend/Image.php

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
*/
66
namespace Magento\Catalog\Model\Category\Attribute\Backend;
77

8-
use Magento\Catalog\Model\ImageUploader;
98
use Magento\Framework\App\Filesystem\DirectoryList;
109
use Magento\Framework\App\ObjectManager;
1110
use Magento\Framework\File\Uploader;
@@ -49,7 +48,7 @@ class Image extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend
4948
protected $_logger;
5049

5150
/**
52-
* @var ImageUploader
51+
* @var \Magento\Catalog\Model\ImageUploader
5352
*/
5453
private $imageUploader;
5554

@@ -68,22 +67,18 @@ class Image extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend
6867
* @param \Magento\Framework\Filesystem $filesystem
6968
* @param \Magento\MediaStorage\Model\File\UploaderFactory $fileUploaderFactory
7069
* @param StoreManagerInterface $storeManager
71-
* @param ImageUploader $imageUploader
7270
*/
7371
public function __construct(
7472
\Psr\Log\LoggerInterface $logger,
7573
\Magento\Framework\Filesystem $filesystem,
7674
\Magento\MediaStorage\Model\File\UploaderFactory $fileUploaderFactory,
77-
StoreManagerInterface $storeManager = null,
78-
ImageUploader $imageUploader = null
75+
StoreManagerInterface $storeManager = null
7976
) {
8077
$this->_filesystem = $filesystem;
8178
$this->_fileUploaderFactory = $fileUploaderFactory;
8279
$this->_logger = $logger;
8380
$this->storeManager = $storeManager ??
8481
ObjectManager::getInstance()->get(StoreManagerInterface::class);
85-
$this->imageUploader = $imageUploader ??
86-
ObjectManager::getInstance()->get(ImageUploader::class);
8782
}
8883

8984
/**
@@ -112,9 +107,10 @@ private function getUploadedImageName($value)
112107
*/
113108
private function checkUniqueImageName(string $imageName): string
114109
{
110+
$imageUploader = $this->getImageUploader();
115111
$mediaDirectory = $this->_filesystem->getDirectoryWrite(DirectoryList::MEDIA);
116112
$imageAbsolutePath = $mediaDirectory->getAbsolutePath(
117-
$this->imageUploader->getBasePath() . DIRECTORY_SEPARATOR . $imageName
113+
$imageUploader->getBasePath() . DIRECTORY_SEPARATOR . $imageName
118114
);
119115

120116
$imageName = Uploader::getNewFilename($imageAbsolutePath);
@@ -142,7 +138,7 @@ public function beforeSave($object)
142138
/** @var StoreInterface $store */
143139
$store = $this->storeManager->getStore();
144140
$baseMediaDir = $store->getBaseMediaDir();
145-
$newImgRelativePath = $this->imageUploader->moveFileFromTmp($imageName, true);
141+
$newImgRelativePath = $this->getImageUploader()->moveFileFromTmp($imageName, true);
146142
$value[0]['url'] = '/' . $baseMediaDir . '/' . $newImgRelativePath;
147143
$value[0]['name'] = $value[0]['url'];
148144
} catch (\Exception $e) {
@@ -168,6 +164,23 @@ public function beforeSave($object)
168164
return parent::beforeSave($object);
169165
}
170166

167+
/**
168+
* Get Instance of Category Image Uploader.
169+
*
170+
* @return \Magento\Catalog\Model\ImageUploader
171+
*
172+
* @deprecated 101.0.0
173+
*/
174+
private function getImageUploader()
175+
{
176+
if ($this->imageUploader === null) {
177+
$this->imageUploader = \Magento\Framework\App\ObjectManager::getInstance()
178+
->get("\Magento\Catalog\CategoryImageUpload");
179+
}
180+
181+
return $this->imageUploader;
182+
}
183+
171184
/**
172185
* Check if temporary file is available for new image upload.
173186
*

app/code/Magento/Catalog/etc/di.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -238,11 +238,6 @@
238238
<argument name="imageUploader" xsi:type="object">Magento\Catalog\CategoryImageUpload</argument>
239239
</arguments>
240240
</type>
241-
<type name="Magento\Catalog\Model\Category\Attribute\Backend\Image">
242-
<arguments>
243-
<argument name="imageUploader" xsi:type="object">Magento\Catalog\CategoryImageUpload</argument>
244-
</arguments>
245-
</type>
246241
<type name="Magento\Catalog\Model\Session">
247242
<arguments>
248243
<argument name="storage" xsi:type="object">Magento\Catalog\Model\Session\Storage</argument>

0 commit comments

Comments
 (0)