我的用户需要在我的Play应用程序中点击某个控制器时下载文件。我认为这样可以解决问题:
def downloadFile = Action {
Ok.sendFile(new File("example.zip"))
}
但似乎只提供文件的实际内容而不是下载文件。有谁能告诉我我做错了什么?
由于
答案 0 :(得分:0)
请改为尝试:
def index = Action {
Ok.sendFile(
content = new java.io.File("/tmp/fileToServe.pdf"),
fileName = _ => "termsOfService.pdf"
)
}
来自文档本身。
现在您不必指定文件名,因为Web浏览器会 不要尝试下载它,但只会显示文件内容 网页浏览器窗口。这对支持的内容类型很有用 本地由Web浏览器,如文本,HTML或图像。
请参阅:https://www.playframework.com/documentation/2.0/ScalaStream
答案 1 :(得分:0)
原来我们使用的REST客户端会自动将文件直接转换为其内容,而不是让我们下载文件。从普通浏览器中访问它可以按预期工作。