微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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中相似

干杯

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐