12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?php
- /**
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Backup\Controller\Adminhtml\Index;
- use Magento\Framework\App\Filesystem\DirectoryList;
- class Download extends \Magento\Backup\Controller\Adminhtml\Index
- {
- /**
- * @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);
- $this->_fileFactory->create(
- $fileName,
- null,
- DirectoryList::VAR_DIR,
- 'application/octet-stream',
- $backup->getSize()
- );
- /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
- $resultRaw = $this->resultRawFactory->create();
- $resultRaw->setContents($backup->output());
- return $resultRaw;
- }
- }
|