3

我将此列表传递给 Play2 模板:

files: Option[List[(String, reactivemongo.api.gridfs.ReadFile[reactivemongo.bson.BSONValue])]])

怎么做我从列表中拉出第一张图像并将该图像渲染到 html 标记

<img src=" ">

任何帮助都会很棒:)

谢谢丹尼

4

1 回答 1

3

通过查看响应式 mongo 演示应用程序,您似乎必须添加一条从 gridfs 提供图像的路由。查看路由文件控制器,该示例显示了如何提供附件。所以你的情况可能是这样的:

在路由文件中:

GET     /img/:id            controllers.Images.getImg(id)

Images控制器中:

def getImg(id: String) = Action {
  Async {
    import reactivemongo.api.gridfs.Implicits.DefaultReadFileReader
    val file = gridFS.find(BSONDocument("_id" -> new BSONObjectID(id)))
    serve(gridFS, file)
  }
}

然后在您的模板中:

@if(files.isDefined) {
    @files.get.map { file =>
    <img src="@routes.Images.getImg(file._1)"/>
  }
}
于 2013-03-11T15:08:39.647 回答