我有一串数据,是从数据库中的数据中获取的。我想将其发送给用户,但不创建文件的本地副本,例如
Ok(MyString).as("file/csv")
但它不起作用。我该怎么做?
您可以通过使用来做到这一点chunked
与Enumerator
。我也用过withHeaders
指定内容类型和配置Result
到“附件”,以便客户端将其解释为要下载的文件(而不是在浏览器本身中打开)。
import play.api.libs.iteratee.Enumerator
val myString: String = ??? // the String you want to send as a file
Ok.chunked(Enumerator(myString.getBytes("UTF-8")).andThen(Enumerator.eof))
.withHeaders(
"Content-Type" -> "text/csv",
"Content-Disposition" -> "attachment; filename=mystring.csv"
)
这可能不会立即编译,具体取决于您从数据库获取的类型。
想想看,这也应该有效(没有Enumerator
):
Ok(myString).withHeaders( /* headers from above */ )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)