6
は、クライアントの要求は、ファイルのために、私はそれを送信するためにこのコードを使用する場合:ダウンロードのためにブラウザにファイルを送信するには?
public static Result download(String file) {
File file = getRealFile(file);
return Ok(file);
}
しかし、私は、ブラウザがそれをダウンロードし、代わりにその内容を表示しません発見しました。応答ヘッダー:
Content-Type text/plain
Transfer-Encoding chunked
ファイルを送信する正しい方法は何ですか?
更新
パーRazviの答え、私は答えはこの質問のために良いと思われるが見つかりました:https://stackoverflow.com/a/1074925/342235
しかし、私たちは本当に多くのヘッダーを設定する必要がありますか?
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$filepath");
header("Content-Type: mime/type");
header("Content-Transfer-Encoding: binary");
// UPDATE: Add the below line to show file size during download.
header('Content-Length: ' . filesize($filepath));
私は、私はこれを行うための別の方法を発見した – Freewind
:)不運、PLAY2はこれを行うには、いくつかの便利な方法を思っていたしません明示的にヘッダを設定する必要があります。 :) – Razvi
'renderBinary'はplay1のためだけです:( – Freewind