通过滑动将文件上传保存到数据库

gun*_*gun 5 scala playframework slick

我想上传一个文件,然后将该文件保存到数据库中。我正在使用播放框架和光滑。我找不到任何示例如何编写tablequery以及如何在我的数据库中保存文件(Postgres)。

Play文档描述了如何上传文件的方式:

def upload = Action(parse.multipartFormData) { request =>
  request.body.file("picture").map { picture =>
    import java.io.File
    val filename = picture.filename
    val contentType = picture.contentType
    val file = picture.ref.file

    //Here I have to save file, right?

    Ok("File uploaded")
  }.getOrElse {
    Redirect(routes.Application.index).flashing(
      "error" -> "Missing file")
  }
}
Run Code Online (Sandbox Code Playgroud)

有人可以给我一个例子或提示去哪里看看吗?我不确定模型的数据类型是什么。

可以这么说,有一个PictureDao:

trait PictureDao with PictureComponent with HasDatabaseConfig[JdbcProfile] {
  import driver.api._

}

trait PictureComponent {
  protected val dbConfig = DatabaseConfigProvider.get[JdbcProfile]("postgres")(Play.current)
  protected val driver: JdbcProfile
  import driver.api._
  import com.github.tototoshi.slick.JdbcJodaSupport._

  class PictureTable(tag: Tag) extends Table[Picture](tag, "picture") {
    def userId = column[Option[UUID]]("userid", O.PrimaryKey)
    def photo = column[Blob]("photo")
    def date = column[DateTime]("date")
    def * = (userId, photo, date) <> ((Picture.apply _).tupled, Picture.unapply)
  }
  // table query definitions
  val pictureTable = TableQuery[PictureTable]
}
Run Code Online (Sandbox Code Playgroud)

我的图片课程上的“照片”会是哪种类型?

看起来很简单。我不知道为什么这么复杂...