The package provides a factory to help forming file download PSR-7 response
BSD-3-CLAUSE License
The package provides a factory to help forming file download PSR-7 response.
The package could be installed with Composer:
composer require yiisoft/response-download
Use the factory to form a response:
use Psr\Http\Message\ResponseInterface;
use Yiisoft\ResponseDownload\DownloadResponseFactory;
final class MyController
{
public function __construct(
private readonly DownloadResponseFactory $downloadResponseFactory,
)
{
}
public function sendMyContentAsFile(): ResponseInterface
{
return $this->downloadResponseFactory->sendContentAsFile('Hello!', 'message.txt');
}
public function sendMyFile(): ResponseInterface
{
return $this->downloadResponseFactory->sendFile('message.txt');
}
public function xSendMyFile(): ResponseInterface
{
return $this->downloadResponseFactory->xSendFile('message.txt');
}
public function sendMyStreamAsFile(): ResponseInterface
{
$stream = new MyStream();
return $this->downloadResponseFactory->sendStreamAsFile($stream, 'message.txt');
}
}
Note the xSendFile()
. It is a special method that delegates the hard work to the web server instead of serving the
file using PHP.
Optional arguments and defaults:
sendFile()
or xSendFile()
, it will be taken from the name of the filesendFile()
and xSendFile()
it will be determined based on the file content.Yiisoft\Http\ContentDispositionHeader\ContentDispositionHeader::INLINE
.If you need help or have a question, the Yii Forum is a good place for that. You may also check out other Yii Community Resources.
The Yii PSR-7 Download Response Factory is free software. It is released under the terms of the BSD License.
Please see LICENSE
for more information.
Maintained by Yii Software.