Как отправить файл в браузер для скачивания?

Когда клиент запрашивает файл, я использую этот код для его отправки:

public static Result download(String file) {
    File file = getRealFile(file);
    return Ok(file);
}

Но я обнаружил, что браузер не загружает его, а вместо этого отображает его содержимое. Заголовок ответа:

Content-Type    text/plain
Transfer-Encoding   chunked

Как правильно отправить файл?


Обновление

Согласно ответу Разви, я нашел ответ на этот вопрос хорошим: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));

7
задан Community 23 May 2017 в 12:31
поделиться