Scala Playframework 发送文件

2024-01-11

我有一串数据,是从数据库中的数据中获取的。我想将其发送给用户,但不创建文件的本地副本,例如

Ok(MyString).as("file/csv") 

但它不起作用。我该怎么做?


您可以通过使用来做到这一点chunkedEnumerator。我也用过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(使用前将#替换为@)

Scala Playframework 发送文件 的相关文章

随机推荐

  • 如何深度比较 2 个 Lua 表,它们可能有也可能没有表作为键?

    也发布在 Lua 邮件列表上 所以我一直在编写深复制算法 我想测试它们 看看它们是否按照我想要的方式工作 虽然我确实可以访问原始 gt 复制映射 但我想要一个通用的深度比较算法 该算法必须能够比较表键 表作为键 我的深度复制算法 可以在这里
  • 私有非常量和公共常量成员函数 - 和平共存?

    我正在尝试创建一个具有两个同名方法的类 用于访问私有成员 一种方法是公共且 const 限定的 另一种方法是私有且非常量的 由友元类使用 通过引用返回的方式修改成员 不幸的是 我收到编译错误 使用 g 4 3 当使用非常量对象调用该方法时
  • 带有 SVM 基分类器的 AdaBoost 的执行时间

    我刚刚用这些参数制作了一个 Adaboost 分类器 1 n estimators 50 2 base estimator svc 支持向量分类器 3 learning rate 1 这是我的代码 from sklearn ensemble
  • NETSDK1073:无法识别 FrameworkReference“Microsoft.AspNetCore.App”

    我使用 NET Core 5 0 100 preview 7 20366 6 Blazor webassemble Microsoft Visual Studio Community 2019 预览版 16 7 0 预览版 6 0 file
  • 在 Actionscript 上播放声音

    我有一个简单的拖放游戏 在 Flash 中启动并且大部分工作正常 我已经添加了我的动物 您可以将它们拖放到正确的位置 我还添加了声音 这样当动物被放到正确的位置时 它就可以工作 但是每次我将新动物添加到正确的位置时 它都会起作用 播放那个声
  • Objective-C 中的 NSBundle 和 mainBundle 是什么?

    关于iOS上的Objective C应用程序 我在Apple开发者网站上阅读了一些示例程序 我发现几乎所有的应用程序都包含一个词叫做 NSBundle https developer apple com documentation foun
  • 使用时间跨度对具有相同值的连续行进行分组

    抱歉标题含糊 我只是不知道如何描述这个难题 给出一个教室的时间表如下 Classroom CourseName Lesson StartTime EndTime 1001 Course 1 Lesson 1 0800 0900 1001 C
  • 在 ASP.NET 中发送大量电子邮件

    这是我发送大量电子邮件的代码 我想优化此代码以确保它能够正常工作并且可以成功发送所有电子邮件 我应该怎么办 我知道在发送之间设置中断可能很有用 但我该怎么做呢 主要问题是避免将电子邮件分类为垃圾邮件并减少发送失败的电子邮件数量 var li
  • 使用 Chrome Identity API 获取 id_token

    我正在开发一个 Google Chrome 扩展程序 以允许用户使用他们的 Google 帐户进行身份验证 我决定使用Chrome Identity API 要对我的应用程序中的用户进行身份验证 我需要获取 ID Token 签名令牌 有没
  • 未捕获的类型错误:无法读取 null 的属性“on”[重复]

    这个问题在这里已经有答案了 我收到这个未捕获的类型错误 我不确定是什么原因造成的 也许与 JQuery 有关 这是确切的代码 when add to cart link is clicked addtocart on click funct
  • 使用 javascript 将外部 .htm 文件加载到 div 中

    所以我得到了这个代码 JavaScript html a href file htm class ajax Link a 它在 Firefox 中完美运行 但是当我在 Chrome 中单击链接时 什么也没有发生 而 IE 只是打开一个包含该
  • R 中的 padr:以用户定义的间隔进行填充

    我正在以 5 分钟的时间间隔处理时间序列数据 部分 5 分钟时间序列缺失 我想对数据集重新采样 以用 NaN 值填充缺失的 5 分钟时间段 我在这里找到了有关如何解决此问题的大量信息 R 插入缺少日期 时间的行 https stackove
  • 在数组中查找几个感兴趣的区域

    假设我进行了一项实验 其中我让 python 程序运行了很长一段时间 在那段时间里 我对一些数量与时间的关系进行了多次测量 每次测量都以 1 到 3 秒之间的某个值分隔 所使用的时间步长比该值小得多 比如 0 01 秒 即使只取 y 轴 这
  • 使用 FFmpeg 中的 libavcodec 解码作品

    我正在尝试使用 libavcodec 解码作品 我可以单独使用 libopus 库来做到这一点 但我正在尝试使用 libavcodec 实现相同的目标 我试图弄清楚为什么它在我的情况下不起作用 我有一个 rtp 流并尝试对其进行解码 解码数
  • 在 Google Cloud Vision API 中指定响应语言

    我正在使用 Google Cloud Vision API 来检测给定图像中的地标 网络实体和其他内容 查看文档here https cloud google com vision docs libraries 我专门使用 images a
  • C# 选择列表中的元素作为字符串列表

    在 C 中 我需要将对象列表中特定属性的所有值获取到字符串列表中 List
  • 更改 ViewModel 的视图

    我正在尝试为 mt WPF 应用程序实现 MVVM 设计模式 为了将视图连接到视图模型 我使用ResourceDictionary 用于Application Resources 看起来像
  • StandardOpenOption.SPARSE 有什么用?

    Java 7 定义这个选项 http docs oracle com javase 7 docs api java nio file StandardOpenOption html SPARSE 但我无法理解它的用处 考虑这个简单的程序 在
  • Sql Server 2005 与 Windows 10 不兼容

    当我升级到 Windows 10 时 SQL Server 2005 可以工作 现在它无法工作 据 Microsoft 称 我读到它与 Windows 8 不兼容 对我来说 Windows 10 只是 Windows 8 的成熟版本 有什么
  • Scala Playframework 发送文件

    我有一串数据 是从数据库中的数据中获取的 我想将其发送给用户 但不创建文件的本地副本 例如 Ok MyString as file csv 但它不起作用 我该怎么做 您可以通过使用来做到这一点chunked与Enumerator 我也用过w