【问题标题】:Can I force download mutiple files or a zip file?我可以强制下载多个文件或一个 zip 文件吗?
【发布时间】:2014-06-18 10:17:50
【问题描述】:

我使用的是 Cakephp 2.4。

我实际上可以使用以下代码在每个请求中强制下载一个文件(从字符串创建):

$this->autoRender = false;
$this->response->body($file);
$this->response->download($log);
$this->response->send();

但是可以在一个请求中下载多个文件吗?当我把这段代码放在一个循环中时,Cake 会创建一个包含不同文件内容的文件。

如果不是,Cake 是否可以创建一个 zip 文件并将每个文件放入其中?

【问题讨论】:

    标签: cakephp cakephp-2.4


    【解决方案1】:

    这是不可能的,因为 HTTP 协议和任何浏览器都不支持这样的东西,这不是 CakePHP 的东西。

    如果您需要通过一个请求为多个文件提供服务,那么您必须将它们放在某种存档中,但这也与 CakePHP 没有直接关系,因为它不附带 ZIP 库或类似的库,都是关于 PHP 的。

    我认为现在没有必要解释如何使用 PHP 压缩文件,因为互联网的每个角落都有解释。

    压缩文件后,将压缩数据作为字符串传递给CakeResponse::body(),就像您已经在做的那样(不推荐用于大型存档,因为它会占用内存),或者临时存储 ZIP磁盘上的文件并使用CakeResponse::file()

    http://book.cakephp.org/2.0/en/controllers/request-response.html#sending-files

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      相关资源
      最近更新 更多