![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-swatches/Controller/Adminhtml/Iframe/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Swatches\Controller\Adminhtml\Iframe; use Magento\Framework\App\Filesystem\DirectoryList; /** * Class to show swatch image and save it on disk */ class Show extends \Magento\Backend\App\Action { /** * Authorization level of a basic admin session * * @see _isAllowed() */ const ADMIN_RESOURCE = 'Magento_Swatches::iframe'; /** * Helper to move image from tmp to catalog * * @var \Magento\Swatches\Helper\Media */ protected $swatchHelper; /** * @var \Magento\Framework\Image\AdapterFactory */ protected $adapterFactory; /** * @var \Magento\Catalog\Model\Product\Media\Config */ protected $config; /** * @var \Magento\Framework\Filesystem */ protected $filesystem; /** * @var \Magento\MediaStorage\Model\File\UploaderFactory */ protected $uploaderFactory; /** * @param \Magento\Backend\App\Action\Context $context * @param \Magento\Swatches\Helper\Media $swatchHelper * @param \Magento\Framework\Image\AdapterFactory $adapterFactory * @param \Magento\Catalog\Model\Product\Media\Config $config * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\MediaStorage\Model\File\UploaderFactory $uploaderFactory */ public function __construct( \Magento\Backend\App\Action\Context $context, \Magento\Swatches\Helper\Media $swatchHelper, \Magento\Framework\Image\AdapterFactory $adapterFactory, \Magento\Catalog\Model\Product\Media\Config $config, \Magento\Framework\Filesystem $filesystem, \Magento\MediaStorage\Model\File\UploaderFactory $uploaderFactory ) { $this->swatchHelper = $swatchHelper; $this->adapterFactory = $adapterFactory; $this->config = $config; $this->filesystem = $filesystem; $this->uploaderFactory = $uploaderFactory; parent::__construct($context); } /** * Image upload action in iframe * * @return string */ public function execute() { try { $uploader = $this->uploaderFactory->create(['fileId' => 'datafile']); $uploader->setAllowedExtensions(['jpg', 'jpeg', 'gif', 'png']); /** @var \Magento\Framework\Image\Adapter\AdapterInterface $imageAdapter */ $imageAdapter = $this->adapterFactory->create(); $uploader->addValidateCallback('catalog_product_image', $imageAdapter, 'validateUploadFile'); $uploader->setAllowRenameFiles(true); $uploader->setFilesDispersion(true); /** @var \Magento\Framework\Filesystem\Directory\Read $mediaDirectory */ $mediaDirectory = $this->filesystem->getDirectoryRead(DirectoryList::MEDIA); $config = $this->config; $result = $uploader->save($mediaDirectory->getAbsolutePath($config->getBaseTmpMediaPath())); unset($result['path']); $this->_eventManager->dispatch( 'swatch_gallery_upload_image_after', ['result' => $result, 'action' => $this] ); unset($result['tmp_name']); $result['url'] = $this->config->getTmpMediaUrl($result['file']); $result['file'] = $result['file'] . '.tmp'; $newFile = $this->swatchHelper->moveImageFromTmp($result['file']); $this->swatchHelper->generateSwatchVariations($newFile); $fileData = ['swatch_path' => $this->swatchHelper->getSwatchMediaUrl(), 'file_path' => $newFile]; $this->getResponse()->setBody(json_encode($fileData)); } catch (\Exception $e) { $result = ['error' => $e->getMessage(), 'errorcode' => $e->getCode()]; $this->getResponse()->setBody(json_encode($result)); } } }