使用Play 2 / Scala提供本地图像

时间:2013-08-08 17:00:46

标签: scala playframework-2.0

我正在尝试找出一种在本地上传和提供文件(图像)的模式。我想出了上传部分,但对存储和服务部分有点困惑。

我对如何使用“Ok.sendFile”在单个页面上显示本地存储的图像感到困惑。如何将它绑定到视图中的“img src”标签?我能想到的另一个选择是在本地运行(单独的)Web服务器只是为了存储文件,这没有多大意义。

1 个答案:

答案 0 :(得分:9)

只需在提供图像的控制器中添加一个动作:

def picture(name: String) = Action {

   Ok.sendFile(new java.io.File(name)) // the name should contains the image extensions
}

然后在routes文件中添加相应的路线:

GET /picture/:name  controllers.MyPictureController.picture(name: String)

您的HTML应如下所示:

<img src="/picture/image.png">

或者如果您使用Scala模板:

<img src="@routes.controllers.MyPictureController.picture("image.png")">