我是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中相似
干杯