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ダウンロードする必要があるワード文書がビューファイルに作成されているためです。

これが機能しない理由を誰かが知っていますか?

4

1 に答える 1

1

リダイレクトのためにビューが「レンダリング」されないようにするため、redirectメソッド内のメソッドへの呼び出しを削除する必要があります。download

于 2013-10-18T13:12:07.597 に答える