![]() 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/cartforge.co/app/code/Magefan/Blog/Model/ |
<?php /** * Copyright © Magefan ([email protected]). All rights reserved. * Please visit Magefan.com for license details (https://magefan.com/end-user-license-agreement). * * Glory to Ukraine! Glory to the heroes! */ namespace Magefan\Blog\Model; use Magento\Framework\App\Filesystem\DirectoryList; /** * Blog image uploader */ class ImageUploader extends \Magento\Catalog\Model\ImageUploader { /** * @var \Magento\Framework\Filesystem */ protected $filesystem; /** * ImageUploader constructor * * @param \Magento\MediaStorage\Helper\File\Storage\Database $coreFileStorageDatabase * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\MediaStorage\Model\File\UploaderFactory $uploaderFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Psr\Log\LoggerInterface $logger * @param string $baseTmpPath * @param string $basePath * @param string[] $allowedExtensions */ public function __construct( \Magento\MediaStorage\Helper\File\Storage\Database $coreFileStorageDatabase, \Magento\Framework\Filesystem $filesystem, \Magento\MediaStorage\Model\File\UploaderFactory $uploaderFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Psr\Log\LoggerInterface $logger, $baseTmpPath, $basePath, $allowedExtensions ) { parent::__construct( $coreFileStorageDatabase, $filesystem, $uploaderFactory, $storeManager, $logger, $baseTmpPath, $basePath, $allowedExtensions ); $this->filesystem = $filesystem; } /** * Checking file for moving and move it * * @param string $imageName * @param bool $returnRelativePath * @return string * * @throws \Magento\Framework\Exception\LocalizedException */ public function moveFileFromTmp($imageName, $returnRelativePath = false) { $originalImageName = $imageName; $baseTmpPath = $this->getBaseTmpPath(); $basePath = $this->getBasePath(); $baseImagePath = $this->getFilePath($basePath, $imageName); $baseTmpImagePath = $this->getFilePath($baseTmpPath, $imageName); $mediaPath = $this->filesystem->getDirectoryRead(DirectoryList::MEDIA)->getAbsolutePath(); $baseImageAbsolutePath = $mediaPath . $baseImagePath; $i = 1; while (file_exists($baseImageAbsolutePath)) { $i++; $p = mb_strrpos($originalImageName, '.'); if (false !== $p) { $imageName = mb_substr($originalImageName, 0, $p) . $i . mb_substr($originalImageName, $p); } else { $imageName = $originalImageName . $i; } $baseImagePath = $this->getFilePath($basePath, $imageName); $baseImageAbsolutePath = $mediaPath . $baseImagePath; } try { $this->coreFileStorageDatabase->copyFile( $baseTmpImagePath, $baseImagePath ); $this->mediaDirectory->renameFile( $baseTmpImagePath, $baseImagePath ); } catch (\Exception $e) { throw new \Magento\Framework\Exception\LocalizedException( __('Something went wrong while saving the file(s).') ); } return $returnRelativePath ? $baseImagePath : $imageName; } }