我阅读了有关文件downloads的文档,但我似乎无法使其工作。
我也有read through questions here,并且没有运气。
我的功能如下:
public function generate($id) {
$this->layout = 'ajax';
$this->Magazine->recursive = 2;
$DistributionLists = $this->Magazine->DistributionList->find('all',
array(
'conditions' => array(
'Magazine.id' => $id
),
'order' => array(
'DistributionList.priority ASC'
)
)
);
$this->set('magazine',$DistributionLists[0]['Magazine']['magazine_name']);
$this->set(compact('DistributionLists'));
}
public function download() {
$this->viewClass = 'Media';
$params = array(
'id' => "Magazine Distribution List.doc",
'name' => "Magazine Distribution List",
'download' => true,
'extension' => 'doc',
'path' => APP . "tmp" . DS
);
$this->set($params);
unlink(APP."tmp".DS);
$this->redirect(array('action'=>'index'));
}
public function afterFilter() {
parent::afterFilter();
if($this->action == 'generate') {
$this->redirect(array('action'=>'download'));
}
}
我有afterFilter
功能的原因是因为需要下载的word文档是在视图文件中创建的。
有谁知道为什么这不起作用?
答案 0 :(得分:1)
您必须在redirect
方法中移除对download
方法的调用,因为它会阻止您的视图因重定向而“呈现”。