मारियस ने जो जवाब दिया उसके आधार पर।
class Download extends \Magento\Framework\App\Action\Action
{
protected $resultRawFactory;
protected $fileFactory;
public function __construct(
\Magento\Framework\Controller\Result\RawFactory $resultRawFactory,
\Magento\Framework\App\Response\Http\FileFactory $fileFactory,
\Magento\Backend\App\Action\Context $context
) {
$this->resultRawFactory = $resultRawFactory;
$this->fileFactory = $fileFactory;
parent::__construct($context);
}
public function execute()
{
try{
$fileName = 'FileName'; // the name of the downloaded resource
$this->fileFactory->create(
$fileName,
[
'type' => 'filename',
'value' => 'relative/path/to/file/from/basedir'
],
DirectoryList::MEDIA , //basedir
'application/octet-stream',
'' // content length will be dynamically calculated
);
}catch (\Exception $exception){
// Add your own failure logic here
var_dump($exception->getMessage());
exit;
}
$resultRaw = $this->resultRawFactory->create();
return $resultRaw;
}
}
सही अनुमति नहीं होने (भले ही पढ़ने की आवश्यकता हो यहां मैगेंटो चेक लिखने की अनुमति) एक अजीब त्रुटि का परिणाम होगा। "साइट नीचे है या स्थानांतरित हो गई है" या इस तरह से एसएमएस करें।
यह $ fileFactory-> create () के अंदर तर्क पर एक चरम शिखर लेने के लायक है।