gpt4 book ai didi

scala - 使用 Play Framework 下载 csv 文件?

转载 作者:行者123 更新时间:2023-12-02 11:04:29 25 4
gpt4 key购买 nike

我想向我的应用程序添加一个简单的按钮,单击该按钮将调用一个操作,该操作将从我拥有的两个列表创建一个 csv 文件并将其下载到用户计算机。

这是我的行动:

def createAndDownloadFile = Action {

val file = new File("newFile.csv")

val writer = CSVWriter.open(file)

writer.writeAll(List(listOfHeaders, listOfValues))

writer.close()

Ok.sendFile(file, inline = false, _ => file.getName)
}

但这现在对我有用,文件没有从浏览器下载......

我希望看到浏览器下载文件,我认为 Ok.sendFile 应该可以解决问题..

谢谢!

最佳答案

您可以使用Enumerators并为此而流。它应该像这样工作:

val enum   = Enumerator.fromFile(...)
val source = akka.stream.scaladsl.Source.fromPublisher(play.api.libs.streams.Streams.enumeratorToPublisher(enum))
Result(
header = ResponseHeader(OK, Map(CONTENT_DISPOSITION → "attachment; filename=whatever.csv.gz")),
body = HttpEntity.Streamed(source.via(Compression.gzip), None, None)
)

这实际上将通过 gzip 传输下载。如果不需要,只需删除 .via(Compression.gzip) 部分即可。

关于scala - 使用 Play Framework 下载 csv 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44308925/

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