Как я могу отправить файл в браузер, используя Scalatra? - PullRequest
2 голосов
/ 24 апреля 2011

Я использую scalatra-sbt-prototype .Что мне нужно изменить, и где я могу обслуживать файлы из каталога в моей файловой системе?Скажем, к примеру, я бы хотел обслужить файл first.tar.gz из /home/downloads/first.tar.gz и сделать его доступным как:

http://localhost:8080/first.tar.gz

Ответы [ 2 ]

6 голосов
/ 21 июня 2011

Для правильности вы также можете установить contentType, чтобы браузер не пытался отображать его как text / html, если он установлен в вашем фильтре before и заголовке расположения с правильным именем.Большинство браузеров выводят имя файла по URL, но, чтобы быть уверенным, вы можете установить его явно.

get("/first.tar.gz") {
    contentType = "application/octet-stream"
    val file = new java.io.File("/home/downloads/first.tar.gz")
    response.setHeader("Content-Disposition", "attachment; filename=" + file.getName)
    file
}

Очевидно, что маршрут очень статичен, но будет делать то, что вы хотите.

1 голос
/ 25 апреля 2011

Возвращение java.io.File в браузер из действия, кажется, выполняет это.

...