gpt4 book ai didi

scala - 在 Play 2.0 (scala) 中设置 HTTP header ?

转载 作者:行者123 更新时间:2023-12-02 17:34:55 25 4
gpt4 key购买 nike

我正在 Scala 上试验 Play 2.0 框架。我试图弄清楚如何发送自定义 HTTP header - 在本例中为“Content-Disposition:attachment; filename=foo.bar”。我似乎找不到有关如何执行此操作的文档(目前 Play 2.0 的文档总体上相当稀疏)。

有什么提示吗?

最佳答案

结果类型位于 play.api.mvc.Results 中,请参阅 here在 GitHub 上。

为了添加 header ,您可以编写:

Ok
.withHeaders(CONTENT_TYPE -> "application/octet-stream")
.withHeaders(CONTENT_DISPOSITION -> "attachment; filename=foo.txt")

Ok.withHeaders(
CONTENT_TYPE -> "application/octet-stream",
CONTENT_DISPOSITION -> "attachment; filename=foo.txt"
)

这里是完整的示例下载:

def download = Action {
import org.apache.commons.io.IOUtils
val input = Play.current.resourceAsStream("public/downloads/Image.png")
input.map { is =>
Ok(IOUtils.toByteArray(is))
.withHeaders(CONTENT_DISPOSITION -> "attachment; filename=foo.png")
}.getOrElse(NotFound("File not found!"))
}

要下载文件,Play 现在提供了另一种简单的方法:

def download = Action {
Ok.sendFile(new java.io.File("public/downloads/Image1.png"), fileName = (name) => "foo.png")
}

缺点是如果找不到文件,则会导致异常。另外,文件名是通过函数指定的,这似乎有点矫枉过正。

关于scala - 在 Play 2.0 (scala) 中设置 HTTP header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8199490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com