我想上传文件并将该文件保存到数据库中。 我正在使用播放框架和光滑。 我找不到任何示例如何编写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类上的“照片”会是什么类型?
看起来很简单。我想知道它为何如此复杂......