akka-http。生成文件并发送给客户端
akka-http. Generate file and send to client
我需要将字符串保存到文本文件并发送到浏览器。我的路线:
def genFileRoute: Route =
path("someresource" / "generate") {
get {
complete( genFile )
}
}
但是我的生成器有问题:
def genFile = {
val str = "Hi all! I am a string in future text file"
// Need to write some code here :(
// Something like 'php://output' with headers, but for akka.
}
如何在不使用文件系统的情况下创建内存中的文本文件file.txt
?如何发送到客户端浏览器(下载)?
P.S.对不起我的英语,不是我的母语。
您要为此使用 Content-Disposition header - 它允许您设置发送到浏览器的文件名。根本不需要创建文件;在您的示例中,该函数可以 return 一个普通字符串。
def genFile = {
val str = "Hi all! I am a string in future text file"
str
}
路线:
path("someresource" / "generate") {
get {
respondWithHeader(`Content-Disposition`(
ContentDispositionTypes.attachment, Map("filename" -> "somefile.txt"))) {
complete(genFile)
}
}
}
我需要将字符串保存到文本文件并发送到浏览器。我的路线:
def genFileRoute: Route =
path("someresource" / "generate") {
get {
complete( genFile )
}
}
但是我的生成器有问题:
def genFile = {
val str = "Hi all! I am a string in future text file"
// Need to write some code here :(
// Something like 'php://output' with headers, but for akka.
}
如何在不使用文件系统的情况下创建内存中的文本文件file.txt
?如何发送到客户端浏览器(下载)?
P.S.对不起我的英语,不是我的母语。
您要为此使用 Content-Disposition header - 它允许您设置发送到浏览器的文件名。根本不需要创建文件;在您的示例中,该函数可以 return 一个普通字符串。
def genFile = {
val str = "Hi all! I am a string in future text file"
str
}
路线:
path("someresource" / "generate") {
get {
respondWithHeader(`Content-Disposition`(
ContentDispositionTypes.attachment, Map("filename" -> "somefile.txt"))) {
complete(genFile)
}
}
}