我们发送一个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),看起来应该使用原始文件名,或{{1选项:
name
答案 0 :(得分:2)
唉!我们弄清楚出了什么问题......
请注意上面代码第一行中的单词downlaod
?那是罪魁祸首。显然,糟糕的选择导致整个数组被忽略。我不确定这对未来是否会有所帮助,但我想我会把它留下来提醒一下CakePHP选项是这样工作的(在这种情况下至少是这样)。