0

私はコントローラーを持っています:-

function game_file($filename)
    {      
        $file_path = base_url()."resources/games_application/$filename";
        header('Content-Type: application/octet-stream');
        header("Content-Disposition: attachment; filename=$filename");
        ob_clean();
        flush();
        readfile($file_path);
        redirect('downloads');  //This is not working 
    }

私の見解は:-

<a href='".base_url()."downloads/game_file/".$games_data['file_name']."'>Download<a/>

downloadファイルをダウンロードできますが、問題はダウンロード後にコントローラーにリダイレクトしたいことです。これはファイルをダウンロードするだけで、ダウンロードの完了後にリダイレクトしません。私は何か間違ったことをしていますか?

編集:-ヘッダーが既に送信されているため、リダイレクトできないことはわかっています。解決策は何ですか?

4

1 に答える 1

2

あなたが提案していることは決してうまくいきません。aredirect()はヘッダー アクションであり、既にヘッダーを設定しています。しかし、それ自体は 1 つの問題にすぎません。

ファイルのダウンロードをセットアップしてから、ページを別の場所にリダイレクトすることはできません。プロセスを再考する必要があります。たぶん、メインのダウンロード ページから「ダウンロード」アクションの JavaScript キャッチを実行します。

しかし、あなたは...redirect('downloads'); //This is not working決してうまくいきません。

于 2012-08-19T06:28:34.933 に答える