2017-01-24 8 views
2

ここで説明するように、CakeResponse :: file()を使用してユーザーにファイルをダウンロードさせます。CakePHP2 CakeResponse :: file()はFirefoxでダウンロードを開始しません

https://book.cakephp.org/2.0/en/controllers/request-response.html#cake-response-file

しかし、私はそれは、Firefoxを除き、などクローム、IE、オペラ、で正常に動作します気づきました。 Firefoxでは何も起こりません。

$this->response->file($filepath, [ 
    'name' => $filename, 
    'download' => true, 
]); 
return $this->response; 

私のコントローラのコードは、基本的にこれに似ています。ファイルタイプは無関係です。 Firefoxの何が問題なのですか?

+0

Firefoxの正確な問題は何ですか? –

+0

ダウンロードが開始しません。エラーはありません。ただ何も起こりません。 – mmrn

+0

おそらく、適切なヘッダーを記述する必要があります。 –

答えて

1

このようなファイルをダウンロードするにはlinkを与えるべきです、それはすべてのブラウザで動作します。 あなたは、AJAXによってこのダウンロードfunctonを呼び出した場合、それは代わりに、ダウンロードの応答ファイルが表示されますあなたのホームコントローラに

public function download() { 
    $this->response->file($filepath, [ 
    'name' => $filename, 
    'download' => true, 
    ]); 
    return $this->response; 
    } 

<?php echo $this->Html->link('Download', 
    array('controller' => 'Home', 
    'action'=>'download')); 
?> 

コードをテストしました。

+0

誰かがなぜ私の答えを落としたのか分かりますか?誰かが落としているなら、少なくとも理由を教えてください。 –

+0

これはそれでした。私は、ビューからの通常のリンクを使用せずに、ダウンロードを開始するためにPOST経由でパスワードを送信していました。私はそれをリンクに変更し、FFとChromeでうまく動作するようになりました。 – mmrn

+0

それは私が私の答えに書いたものです。それは通常のリンクでなければなりません。 –

関連する問題