【发布时间】:2013-09-27 14:00:35
【问题描述】:
我们正在发送一个 zip 文件下载作为响应,如下所示:
$this->response->file( "/export/stuff.zip", array('downlaod'=>true, 'name'=>"stuff.zip") );
return $this->response;
这工作正常,但文件始终命名为export.zip。我们的name 选项似乎没有任何效果。我们也尝试过不使用 .zip 扩展名。这很令人困惑,因为name 选项在文档中显示为here。
我们做错了什么?
更新: 我们发现看似随意的名称“export”是从控制器操作的名称中复制而来的。我们将方法名称更改为“admin_exportt”,然后每次都会得到 exportt.zip。这在我见过的任何地方都没有记录。
我们找到了在源代码中处理名称的位置 (/lib/Cake/Nework/CakeResponse.php:1254),它似乎应该使用原始文件名,或者在 name 中指定的任何名称选项:
if (is_null($options['name'])) {
$name = $file->name;
} else {
$name = $options['name'];
}
【问题讨论】:
标签: php cakephp cakephp-2.0 download