Scala Play 2.0.2多文件上传

我是Play和 scala的新手.我的要求是提供一个浏览按钮,我们可以选择多个文件上传这些文件.这是我写的代码

在scala.html文件中:

<input type="file" name="files" multiple="multiple" id="files" size="30">

在控制器中:

def upload = Action(parse.multipartFormData) { request =>
  request.body.file("files").map { picture =>
    import java.io.File
    val filename = picture.filename 
    val contentType = picture.contentType
    picture.ref.moveto(new File("/tmp/picture"))
    Ok("File uploaded")
  }.getorElse {
    Redirect(routes.Application.index).flashing(
      "error" -> "Missing file"
    )
  }
}

但我无法上传多个文件.知道这里有什么问题吗?

解决方法

首先,你不需要

="multiple"

这相当于

<input type="file" name="files" multiple id="files" size="30">

要加载多个文件,在定义表单时必须具有该属性

enctype="multipart/form-data"

例如,如果使用帮助程序

@helper.form(action = routes.MyController.submit(),'enctype -> "multipart/form-data",'id -> "myform")

或者如果你不是

<form action=... enctype="multipart/form-data" id="myform">

在你的控制器中你想尝试这样的东西(对于Java,我确信它在Scala中类似)

//Get all files bound to the form when submitted 
List<FilePart> plate_files = request().body().asMultipartFormData().getFiles();
//Get files from a specific name or id
FilePart myfile = request().body().asMultipartFormData().getFile("files");

然后,您可以通过FilePart对象使用这些迭代

希望它在scala中相似

干杯

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...