加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala Play 2.0.2多文件上传

发布时间:2020-12-16 18:48:35 所属栏目:安全 来源:网络整理
导读:我是Play和 scala的新手.我的要求是提供一个浏览按钮,我们可以选择多个文件并上传这些文件.这是我写的代码: 在scala.html文件中: input type="file" name="files" multiple="multiple" id="files" size="30" 在控制器中: def upload = Action(parse.multi
我是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中相似

干杯

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读