Forms 如何使用Scala持久化上传到Play framework的文件?

Forms 如何使用Scala持久化上传到Play framework的文件?,forms,scala,file-upload,playframework,controller,Forms,Scala,File Upload,Playframework,Controller,我有一个上传文件的表单,它引导以下控制器操作方法: object FileUpload extends Controller { def upload() = Action(parse.multipartFormData) { implicit request => { val form = Form(tuple( "description" -> text,

我有一个上传文件的表单,它引导以下控制器操作方法:

object FileUpload extends Controller
{
  def upload() = Action(parse.multipartFormData)
  {
    implicit request =>
    {
      val form = Form(tuple(
                            "description" -> text,
                            "image"       -> ignored(request.body.file("image")).verifying("File missing", _.isDefined)
                      ))

      form.bindFromRequest.fold(
        formWithErrors => { Ok(views.html.files.uploadForm(formWithErrors)) },
        values         =>
        {
          request.body.file("image").map{ imageFile =>
            imageFile.ref.moveTo(new File("tmp/images"))
            Ok("Retrieved file %s" format imageFile.filename)
          }.getOrElse(BadRequest("File missing!"))
        }
      )
    }
  }
在创建“tmp/images”目录之后,当我通过表单提交文件时,我将得到预期的Ok响应

但是,当我查看“tmp/images”目录时,它仍然是空的


那么,这幅图像将走向何方?还有,我如何保存它?

您在哪里创建了“tmp/images”目录。。。?这里的“tmp/images”路径是相对于您的根项目目录的。在我在那里创建它之前,我会收到错误,说路径不存在,所以它必须在正确的位置。您缺少的是提供的路径不是有效的文件路径。您需要提供一个文件名
imageFile.ref.moveTo(新文件(“tmp/images/”+imageFile.filename))
应该可以做到这一点。它很管用!如果你能回答这个问题,我很乐意接受。没必要。很乐意帮忙。:)