2013-08-21 34 views
0

讓我們假設我的服務器上有一個文件夾。我希望能夠使用Play 2.1從URL訪問此文件夾。 我真的不知道如何和我一直在互聯網上搜索很多,無濟於事。播放2.1:訪問服務器上的文件

這裏,其中有我想訪問文件的文件夾: /家庭/用戶/ MYFILES

我想,當我鍵入以下URL 本地主機:9000/filesOnServer /文件名 我在文件夾myFiles中下載名爲「文件名」的文件。

這不是我想做的事:

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

事實上,這樣我只能訪問播放應用程序目錄中的文件。 此外,如果我使用dist,那麼這些文件將存儲在一個.jar文件中,我們不能再向應用程序添加文件。

謝謝你的幫助。

回答

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)