1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- /**
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\Cms\Controller\Adminhtml\Wysiwyg\Images;
- use Magento\Framework\App\Action\HttpPostActionInterface;
- use Magento\Framework\App\Filesystem\DirectoryList;
- /**
- * Upload image.
- */
- class Upload extends \Magento\Cms\Controller\Adminhtml\Wysiwyg\Images implements HttpPostActionInterface
- {
- /**
- * @var \Magento\Framework\Controller\Result\JsonFactory
- */
- protected $resultJsonFactory;
- /**
- * @var \Magento\Framework\App\Filesystem\DirectoryResolver
- */
- private $directoryResolver;
- /**
- * @param \Magento\Backend\App\Action\Context $context
- * @param \Magento\Framework\Registry $coreRegistry
- * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
- * @param \Magento\Framework\App\Filesystem\DirectoryResolver|null $directoryResolver
- */
- public function __construct(
- \Magento\Backend\App\Action\Context $context,
- \Magento\Framework\Registry $coreRegistry,
- \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory,
- \Magento\Framework\App\Filesystem\DirectoryResolver $directoryResolver = null
- ) {
- parent::__construct($context, $coreRegistry);
- $this->resultJsonFactory = $resultJsonFactory;
- $this->directoryResolver = $directoryResolver
- ?: $this->_objectManager->get(\Magento\Framework\App\Filesystem\DirectoryResolver::class);
- }
- /**
- * Files upload processing.
- *
- * @return \Magento\Framework\Controller\ResultInterface
- * @throws \Magento\Framework\Exception\LocalizedException
- */
- public function execute()
- {
- try {
- $this->_initAction();
- $path = $this->getStorage()->getSession()->getCurrentPath();
- if (!$this->directoryResolver->validatePath($path, DirectoryList::MEDIA)) {
- throw new \Magento\Framework\Exception\LocalizedException(
- __('Directory %1 is not under storage root path.', $path)
- );
- }
- $uploaded = $this->getStorage()->uploadFile($path, $this->getRequest()->getParam('type'));
- $response = [
- 'name' => $uploaded['name'],
- 'type' => $uploaded['type'],
- 'error' => $uploaded['error'],
- 'size' => $uploaded['size'],
- 'file' => $uploaded['file']
- ];
- } catch (\Exception $e) {
- $response = ['error' => $e->getMessage(), 'errorcode' => $e->getCode()];
- }
- /** @var \Magento\Framework\Controller\Result\Json $resultJson */
- $resultJson = $this->resultJsonFactory->create();
-
- return $resultJson->setData($response);
- }
- }
|