|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / a / home / dev2.destoffenstraat.com / vendor / amasty / base / Controller / Adminhtml / Import / |
Filename | /home/a/home/dev2.destoffenstraat.com/vendor/amasty/base/Controller/Adminhtml/Import/Download.php |
Size | 3.57 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 21-Aug-2025 12:26 |
Last modified | 16-Aug-2022 09:35 |
Last accessed | 23-Aug-2025 05:37 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
* @author Amasty Team
* @copyright Copyright (c) 2022 Amasty (https://www.amasty.com)
* @package Magento 2 Base Package
*/
namespace Amasty\Base\Controller\Adminhtml\Import;
use Magento\Framework\App\RequestInterface;
use Magento\Framework\App\Response\Http\FileFactory;
use Magento\Framework\Controller\ResultFactory;
use Magento\Framework\Filesystem\Directory\ReadFactory;
use Magento\Framework\Message\ManagerInterface;
use Magento\Framework\Module\Dir\Reader;
class Download
{
/**
* @var Reader
*/
private $reader;
/**
* @var ReadFactory
*/
private $readFactory;
/**
* @var FileFactory
*/
private $fileFactory;
/**
* @var RequestInterface
*/
private $request;
/**
* @var ManagerInterface
*/
private $messageManager;
/**
* @var ResultFactory
*/
private $resultFactory;
public function __construct(
Reader $reader,
ReadFactory $readFactory,
FileFactory $fileFactory,
RequestInterface $request,
ManagerInterface $messageManager,
ResultFactory $resultFactory
) {
$this->reader = $reader;
$this->readFactory = $readFactory;
$this->fileFactory = $fileFactory;
$this->request = $request;
$this->messageManager = $messageManager;
$this->resultFactory = $resultFactory;
}
/**
* @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Framework\Controller\Result\Raw
*/
public function downloadSample($moduleName)
{
if (empty($moduleName)) {
return $this->emptyModuleName();
}
if (!preg_match('/[a-z0-9\-]+/i', $this->request->getParam('filename'))) {
return $this->noEntityFound();
}
$fileName = $this->request->getParam('filename') . '.csv';
$moduleDir = $this->reader->getModuleDir('', $moduleName);
$fileAbsolutePath = $moduleDir . '/Files/Sample/' . $fileName;
$directoryRead = $this->readFactory->create($moduleDir);
$filePath = $directoryRead->getRelativePath($fileAbsolutePath);
if (!$directoryRead->isFile($filePath)) {
return $this->noEntityFound();
}
$this->fileFactory->create(
$fileName,
null,
\Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR,
'application/octet-stream',
$directoryRead->stat($filePath)['size']
);
/** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
$resultRaw = $this->resultFactory->create(ResultFactory::TYPE_RAW);
$resultRaw->setContents($directoryRead->readFile($filePath));
return $resultRaw;
}
/**
* @return \Magento\Backend\Model\View\Result\Redirect
*/
private function noEntityFound()
{
$this->messageManager->addErrorMessage(__('There is no sample file for this entity.'));
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
$resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
$resultRedirect->setPath('*/*/');
return $resultRedirect;
}
/**
* @return \Magento\Backend\Model\View\Result\Redirect
*/
private function emptyModuleName()
{
$this->messageManager->addErrorMessage(__('Module Name is empty.'));
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
$resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
$resultRedirect->setPath('*/*/');
return $resultRedirect;
}
}
/**
* @author Amasty Team
* @copyright Copyright (c) 2022 Amasty (https://www.amasty.com)
* @package Magento 2 Base Package
*/
namespace Amasty\Base\Controller\Adminhtml\Import;
use Magento\Framework\App\RequestInterface;
use Magento\Framework\App\Response\Http\FileFactory;
use Magento\Framework\Controller\ResultFactory;
use Magento\Framework\Filesystem\Directory\ReadFactory;
use Magento\Framework\Message\ManagerInterface;
use Magento\Framework\Module\Dir\Reader;
class Download
{
/**
* @var Reader
*/
private $reader;
/**
* @var ReadFactory
*/
private $readFactory;
/**
* @var FileFactory
*/
private $fileFactory;
/**
* @var RequestInterface
*/
private $request;
/**
* @var ManagerInterface
*/
private $messageManager;
/**
* @var ResultFactory
*/
private $resultFactory;
public function __construct(
Reader $reader,
ReadFactory $readFactory,
FileFactory $fileFactory,
RequestInterface $request,
ManagerInterface $messageManager,
ResultFactory $resultFactory
) {
$this->reader = $reader;
$this->readFactory = $readFactory;
$this->fileFactory = $fileFactory;
$this->request = $request;
$this->messageManager = $messageManager;
$this->resultFactory = $resultFactory;
}
/**
* @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Framework\Controller\Result\Raw
*/
public function downloadSample($moduleName)
{
if (empty($moduleName)) {
return $this->emptyModuleName();
}
if (!preg_match('/[a-z0-9\-]+/i', $this->request->getParam('filename'))) {
return $this->noEntityFound();
}
$fileName = $this->request->getParam('filename') . '.csv';
$moduleDir = $this->reader->getModuleDir('', $moduleName);
$fileAbsolutePath = $moduleDir . '/Files/Sample/' . $fileName;
$directoryRead = $this->readFactory->create($moduleDir);
$filePath = $directoryRead->getRelativePath($fileAbsolutePath);
if (!$directoryRead->isFile($filePath)) {
return $this->noEntityFound();
}
$this->fileFactory->create(
$fileName,
null,
\Magento\Framework\App\Filesystem\DirectoryList::VAR_DIR,
'application/octet-stream',
$directoryRead->stat($filePath)['size']
);
/** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
$resultRaw = $this->resultFactory->create(ResultFactory::TYPE_RAW);
$resultRaw->setContents($directoryRead->readFile($filePath));
return $resultRaw;
}
/**
* @return \Magento\Backend\Model\View\Result\Redirect
*/
private function noEntityFound()
{
$this->messageManager->addErrorMessage(__('There is no sample file for this entity.'));
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
$resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
$resultRedirect->setPath('*/*/');
return $resultRedirect;
}
/**
* @return \Magento\Backend\Model\View\Result\Redirect
*/
private function emptyModuleName()
{
$this->messageManager->addErrorMessage(__('Module Name is empty.'));
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
$resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
$resultRedirect->setPath('*/*/');
return $resultRedirect;
}
}