我有一个Play 2.4.2操作,可以使用标准API成功上传MultipartFormData(下面的示例)。前端是使用指令上传文件的Angular应用程序。此Angular库还支持从服务器接收文件加载的进度。
我如何在Play动作中完成此操作?我是否必须编写一个新的身体解析器?
以下是我的操作有效,但不提供上传进度:
def uploadFile = Action(BodyParsers.parse.multipartFormData) { implicit req =>
val fileName = req.body.file("file").map{ file =>
val uploadDir = play.api.Play.current.configuration.getString("upload.dir").get
file.ref.moveTo(play.api.Play.getFile(uploadDir + "/image." + file.filename))
file.filename
}
Ok(Json.toJson(Map("status" -> "success", "file" -> fileName.get)))
}