下载功能不起作用CakePHP

时间:2013-10-17 14:20:12

标签: cakephp download

我阅读了有关文件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文档是在视图文件中创建的。

有谁知道为什么这不起作用?

1 个答案:

答案 0 :(得分:1)

您必须在redirect方法中移除对download方法的调用,因为它会阻止您的视图因重定向而“呈现”。