yiisoft/response-download
该软件包提供了一个工厂,用于帮助形成文件下载PSR-7响应。
1.0.0
2023-03-14 07:17 UTC
Requires
- php: ^8.1
- ext-fileinfo: *
- psr/http-factory: ^1.0
- psr/http-message: ^1.0
- yiisoft/http: ^1.2
Requires (Dev)
- httpsoft/http-message: ^1.0
- maglnet/composer-require-checker: ^4.3
- phpunit/phpunit: ^9.5
- rector/rector: ^0.15.19
- roave/infection-static-analysis-plugin: ^1.16
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^5.8
This package is auto-updated.
Last update: 2024-09-22 13:34:08 UTC
README
Yii PSR-7 下载响应工厂
该软件包提供了一个工厂,用于帮助形成文件下载PSR-7响应。
要求
- PHP 8.1 或更高版本。
安装
可以使用 Composer 安装此软件包
composer require yiisoft/response-download
通用用法
使用工厂来形成响应
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'); } }
注意 xSendFile()
。这是一个特殊方法,将重工作委托给Web服务器,而不是使用PHP来提供服务。
可选参数和默认值
- 如果
sendFile()
或xSendFile()
中未指定附件名称,则将从所提供文件的名称中获取。 - 。
- 每个文件发送方法还可以提供可选的MIME类型和可选的内容处置。
- 如果省略了MIME类型,对于
sendFile()
和xSendFile()
,它将基于文件内容确定。对于其他方法或无法确定MIME类型时,将使用 "application/octet-stream"。 - 内容处置默认为 "attachment"。它将触发浏览器的下载对话框。如果您想将文件内容显示为内联,请将其设置为
Yiisoft\Http\ContentDispositionHeader\ContentDispositionHeader::INLINE
。
文档
如果您需要帮助或有问题,可以前往 Yii 论坛。您还可以查看其他 Yii 社区资源。
许可证
Yii PSR-7 下载响应工厂是自由软件。它根据BSD许可证发布。有关更多信息,请参阅 LICENSE
。
由 Yii 软件 维护。