【问题标题】:incorrect Filename when downloading from Play 2.6 application从 Play 2.6 应用程序下载时文件名不正确
【发布时间】:2017-07-08 16:30:21
【问题描述】:

我正在尝试学习 Play Framework。 在 documentationServing files 部分下,当我尝试以下示例时,

def terms = Action {
  Ok.sendFile(
    content = new java.io.File("README.txt"),
    inline = false)
}

下载的文件名为 utf-8''README.txt,而不是 README.txt

无法理解为什么

配置

  • Java (1.8.0_131-b11)
  • Scala (2.12.2)
  • 播放 (2.6.0)
  • SBT (0.13.15)

【问题讨论】:

  • 您使用哪个客户端下载文件?
  • @Mzf 不确定您所说的 client 是什么意思。我用 localhost:9000/terms 尝试了 firefox 和 chrome 浏览器,它被路由到问题中的 action 方法。
  • 打开了issue

标签: scala playframework-2.6


【解决方案1】:

在文件 play.api.mvc.Results.scala 中发现缺陷。出现在 dwonloaded 文件名 (utf-8'') 中的虚假字符出现在 Results.scala 中,它们不应该存在。

构建框架的本地副本,并在删除这些字符后,现在以正确的名称下载文件。


更新

Results.scala 中的缺陷是 NOT,尽管更改它确实解决了我的问题。根据已提出问题的更新,akka-http 模块存在缺陷,这是 play-2.6 的默认设置。


更新

Play 2.6.1 中已解决的问题。

【讨论】:

    猜你喜欢
    • 2014-11-06
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多