私はscalatra-sbt-prototypeを使用しています。ファイルシステム上のディレクトリからファイルを提供できるようにするには、何を変更する必要がありますか?たとえば、first.tar.gz
からファイルを提供し、次の/home/downloads/first.tar.gz
ようにアクセスできるようにします。
http://localhost:8080/first.tar.gz
私はscalatra-sbt-prototypeを使用しています。ファイルシステム上のディレクトリからファイルを提供できるようにするには、何を変更する必要がありますか?たとえば、first.tar.gz
からファイルを提供し、次の/home/downloads/first.tar.gz
ようにアクセスできるようにします。
http://localhost:8080/first.tar.gz
正確を期すために、contentTypeを設定して、beforeフィルターとdispositionヘッダーに正しい名前が設定されている場合に、ブラウザーがそれをtext/htmlとして表示しようとしないようにすることもできます。ほとんどのブラウザは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
}
明らかに、ルートは非常に静的ですが、あなたが望むことをします。
java.io.File
アクションからブラウザに戻ると、これが達成されるようです。