播放带有其他字段的文件上传表单

时间:2013-03-05 21:32:50

标签: scala playframework-2.1

我遇到了一个包含文件上传和附加输入字段的Play 2.1.0表单的问题。我用

def uploadTaxonomy() = Action(parse.multipartFormData) {
    implicit request =>
      request.body.file("xml").map { file =>
        val xml = scala.io.Source.fromFile(file.ref.file).mkString
        taxonomyForm.bindFromRequest().fold(
          formWithErrors => BadRequest(views.html.index(formWithErrors)),
          result => {
            Taxonomies.create(result._1, xml)
            Redirect(routes.Application.index())
          }
        )
      }.getOrElse {
        Redirect(routes.Application.index())
      }
  }

我的表格是:

val taxonomyForm = Form(
  tuple(
    "label" -> text,
    "xml" -> text
  )
)

问题是bindFromRequest()总是失败(导致错误的请求返回给客户端)。

有人知道问题可能在哪里吗?

注意:我知道在上传字段中没有选择任何文件时会显示bug in 2.1.0;然而,这似乎并不相关。

1 个答案:

答案 0 :(得分:2)

据我所知,xml不应该是表单定义的一部分,因为你直接从请求体中获取它。