0

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

这是一个文件夹,其中有我要访问的文件:/home/user/myFiles

我希望当我键入以下 URL localhost:9000/filesOnServer/filename 时,我会在 myFiles 文件夹中下载名为“filename”的文件。

这不是我想做的:

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

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

谢谢您的帮助。

4

1 回答 1

0

你用的是scala还是java?

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

这是 scala 中的一个小控制器方法的示例,它可能不是最有效的,但它似乎有效!

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)

于 2013-08-22T10:08:31.370 回答