播放2.1:访问服务器上的文件

时间:2013-08-21 21:18:52

标签: playframework-2.1

假设我的服务器上有一个文件夹。我希望能够使用Play 2.1从URL访问此文件夹。 我真的不知道我是如何在互联网上搜索过的,但无济于事。

这是一个文件夹,其中有我想要访问的文件: /家庭/用户/ MYFILES

当我输入以下网址时,我想要这样 本地主机:9000 / filesOnServer /文件名 我在myFiles文件夹中下载名为“filename”的文件。

这不是我想要做的事情:

GET    /filesOnServer/*file     controllers.Assets.at(path="/anything", file)

确实,这样我只能访问play应用程序目录中的文件。 此外,如果我使用dist,则文件存储在.jar中,我们无法再向应用程序添加文件。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您使用的是scala还是java?

我认为你应该寻找Play.getFile()SimpleResult()

以下是scala中一个小的Controller方法的示例,它可能不是最有效但似乎有用!

def getFile() = Action {
    val file = Play.getFile("../../Images/img.png")(Play.current)
    val fileContent = Enumerator.fromFile(file)
    SimpleResult(
       header = ResponseHeader(200, Map(
          CONTENT_LENGTH -> file.length.toString,
          CONTENT_TYPE -> "image/png",
          CONTENT_DISPOSITION -> s"attachment; filename=${file.getName}")),
       body = fileContent)
}

希望它会对你有所帮助!

注意:您也可以使用new java.io.File(absolutePath)