0

我阅读了有关文件下载的文档,但是我似乎无法使其正常工作。

我也在这里阅读 问题 ,但没有运气。

我的功能如下所示:

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文档是在视图文件中创建的。

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

4

1 回答 1

1

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

于 2013-10-18T13:12:07.597 回答