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

时间:2015-08-11 14:12:10

标签: 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")
  }
}

有人可以给我一个例子或暗示在哪里看吗? 我不确定,我的模型的数据类型也是如此。

让我们说,有一个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]
}

我的Picture类上的“照片”会是什么类型?

看起来很简单。我想知道它为何如此复杂......

0 个答案:

没有答案