【发布时间】:2018-09-21 07:27:35
【问题描述】:
我一直在尝试在我的 Scala Play 服务器上上传文件。我已经按照给出的教程
Play framework documentation page dealing with file uploads。按照那里提供的说明,我首先在views 文件夹中创建了一个名为fileuploadform.scala.html 的HTML 页面。该文件包含以下代码
@helper.form(action = routes.ScalaFileUploadController.upload, 'enctype -> "multipart/form-data") {
<input type="file" name="picture">
<p>
<input type="submit">
</p>
}
然后,我在控制器中创建了两个动作。一个将接受 GET 请求以加载 fileuploadform html,另一个将在单击表单上的 Upload 按钮时接受 POST 请求。
控制器(ScalaFileUploadController.scala)中的两个动作是:
def uploadForm = Action {
Ok(views.html.fileuploadform())
}
和
def upload = Action(parse.multipartFormData) { request =>
request.body.file("picture").map { picture =>
val filename = Paths.get(picture.filename).getFileName
picture.ref.moveTo(Paths.get(s"/path/to/location/$filename"), replace = true)
Ok("File uploaded")
}.getOrElse {
Redirect(routes.ScalaFileUploadController.index).flashing(
"error" -> "Missing file")
}
}
最后,在路由中,我将路由定义为
GET /uploadForm controllers.ScalaFileUploadController.uploadForm
POST /upload controllers.ScalaFileUploadController.upload()
应用程序正在端口 xxxx 上运行
当我点击 url ip.ip.ip.ip:xxxx/uploadForm 时,我得到一个编译错误
not found: value Paths
val filename = Paths.get(picture.filename).getFileName 行被突出显示。
我是否缺少一些要添加的库或一些语法修改?
【问题讨论】:
标签: scala playframework multipartform-data