mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
79 lines
2.7 KiB
PHP
79 lines
2.7 KiB
PHP
<?php
|
|
/**
|
|
*
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Backup\Controller\Adminhtml\Index;
|
|
|
|
use Magento\Framework\App\Action\HttpGetActionInterface;
|
|
use Magento\Framework\App\Filesystem\DirectoryList;
|
|
|
|
class Download extends \Magento\Backup\Controller\Adminhtml\Index implements HttpGetActionInterface
|
|
{
|
|
/**
|
|
* @var \Magento\Framework\Controller\Result\RawFactory
|
|
*/
|
|
protected $resultRawFactory;
|
|
|
|
/**
|
|
* @param \Magento\Backend\App\Action\Context $context
|
|
* @param \Magento\Framework\Registry $coreRegistry
|
|
* @param \Magento\Framework\Backup\Factory $backupFactory
|
|
* @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory
|
|
* @param \Magento\Backup\Model\BackupFactory $backupModelFactory
|
|
* @param \Magento\Framework\App\MaintenanceMode $maintenanceMode
|
|
* @param \Magento\Framework\Controller\Result\RawFactory $resultRawFactory
|
|
*/
|
|
public function __construct(
|
|
\Magento\Backend\App\Action\Context $context,
|
|
\Magento\Framework\Registry $coreRegistry,
|
|
\Magento\Framework\Backup\Factory $backupFactory,
|
|
\Magento\Framework\App\Response\Http\FileFactory $fileFactory,
|
|
\Magento\Backup\Model\BackupFactory $backupModelFactory,
|
|
\Magento\Framework\App\MaintenanceMode $maintenanceMode,
|
|
\Magento\Framework\Controller\Result\RawFactory $resultRawFactory
|
|
) {
|
|
parent::__construct(
|
|
$context,
|
|
$coreRegistry,
|
|
$backupFactory,
|
|
$fileFactory,
|
|
$backupModelFactory,
|
|
$maintenanceMode
|
|
);
|
|
$this->resultRawFactory = $resultRawFactory;
|
|
}
|
|
|
|
/**
|
|
* Download backup action
|
|
*
|
|
* @return void|\Magento\Backend\App\Action
|
|
*/
|
|
public function execute()
|
|
{
|
|
/* @var $backup \Magento\Backup\Model\Backup */
|
|
$backup = $this->_backupModelFactory->create(
|
|
$this->getRequest()->getParam('time'),
|
|
$this->getRequest()->getParam('type')
|
|
);
|
|
|
|
if (!$backup->getTime() || !$backup->exists()) {
|
|
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
|
|
$resultRedirect = $this->resultRedirectFactory->create();
|
|
$resultRedirect->setPath('backup/*');
|
|
return $resultRedirect;
|
|
}
|
|
|
|
$fileName = $this->_objectManager->get(\Magento\Backup\Helper\Data::class)->generateBackupDownloadName($backup);
|
|
|
|
return $this->_fileFactory->create(
|
|
$fileName,
|
|
['type' => 'filename', 'value' => $backup->getPath() . DIRECTORY_SEPARATOR . $backup->getFileName()],
|
|
DirectoryList::VAR_DIR,
|
|
'application/octet-stream',
|
|
$backup->getSize()
|
|
);
|
|
}
|
|
}
|