【发布时间】:2013-02-26 19:23:29
【问题描述】:
我正在将此列表传递给 Play2 模板:
files: Option[List[(String, reactivemongo.api.gridfs.ReadFile[reactivemongo.bson.BSONValue])]])
如何从列表中提取第一张图片并将该图片渲染到 html 标记
<img src=" ">
任何帮助都会很棒:)
谢谢 丹尼
【问题讨论】:
我正在将此列表传递给 Play2 模板:
files: Option[List[(String, reactivemongo.api.gridfs.ReadFile[reactivemongo.bson.BSONValue])]])
如何从列表中提取第一张图片并将该图片渲染到 html 标记
<img src=" ">
任何帮助都会很棒:)
谢谢 丹尼
【问题讨论】:
通过查看响应式 mongo 演示应用程序,您似乎必须添加一条用于从 gridfs 提供图像的路由。查看route file 和controller,该示例显示了如何提供附件。所以你的情况可能是这样的:
在路由文件中:
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)"/>
}
}
【讨论】: