SLIM API - 提供要下载的文件

时间:2016-08-26 11:35:46

标签: rest download slim

我正在为我的项目使用Slim API。我想提供下载文件(主要是PDF文件)。我找到了几种方式发送文件的公共链接,我不想要。我还发现了Slim版本2.4的中间件,但我使用的是3.x.

我只想访问路线,例如/下载/版/ 2183 并且应该启动具有此特定文件ID的Downlod。我在一个可用的变量中有一个服务器上文件的路径。

背后的基本理念是不同的限制,用户可以下载文件 - 但我可以自己做 - 我遇到的问题是,如何通过路径下载到客户端浏览器

有谁知道如何实现这个目标?

干杯, 尼古拉斯

1 个答案:

答案 0 :(得分:1)

这实际上很容易。

  1. 在响应对象
  2. 上设置文件的正确标题
  3. 将文件内容读入响应对象的主体
  4. $app->get('/my/file', function ($req, $res, $args) {
       return $res->withHeader('Content-Type', 'application/octet-stream')
                   ->withHeader('Content-Disposition', 'attachment')
                   ->write(file_get_contents("file.txt"));
    });