mirror of
https://gitee.com/hyperf/hyperf.git
synced 2024-12-02 11:48:08 +08:00
Update response.md
This commit is contained in:
parent
2c48d97859
commit
79d6a07f76
@ -125,20 +125,31 @@ class IndexController
|
||||
|
||||
## 分块传输编码 Chunk
|
||||
|
||||
## 返回文件下载
|
||||
## 文件下载
|
||||
|
||||
`Hyperf\HttpServer\Contract\ResponseInterface` 提供了 `download(string $file, string $name = '')` 返回一个已设置下载文件状态的 `Psr7ResponseInterface` 对象。
|
||||
如果请求中带有 `if-match` 或 `if-none-match` 的请求头,Hyperf 也会跟根据协议标准与 `ETag` 进行比较,如果一致则会返回一个 `304` 状态码的响应。
|
||||
|
||||
`download` 方法:
|
||||
|
||||
| 参数 | 类型 | 默认值 | 备注 |
|
||||
|:-------------------:|:------:|:---------------:|:------------------:|
|
||||
| file | string | 无 | 要返回下载文件的绝对路径,同通过 BASE_PATH 常量来定位到项目的根目录 |
|
||||
| name | string | 无 | 客户端下载文件的文件名,为空则会使用下载文件的原名 |
|
||||
|
||||
|
||||
```php
|
||||
<?php
|
||||
namespace App\Controller;
|
||||
|
||||
use Hyperf\HttpMessage\Server\Response;
|
||||
use Hyperf\HttpServer\Contract\ResponseInterface;
|
||||
use Psr\Http\Message\ResponseInterface as Psr7ResponseInterface;
|
||||
|
||||
class IndexController
|
||||
{
|
||||
public function download(ResponseInterface $response): Psr7ResponseInterface
|
||||
public function index(ResponseInterface $response): Psr7ResponseInterface
|
||||
{
|
||||
// download() 方法返回的是一个 Psr\Http\Message\ResponseInterface 对象,需再 return 回去
|
||||
return $response->download('/var/www/file.csv','filename.csv');
|
||||
return $response->download(BASE_PATH . '/public/file.csv', 'filename.csv');
|
||||
}
|
||||
}
|
||||
```
|
Loading…
Reference in New Issue
Block a user