scala - Scala Play 中的多部分文件上传
问题描述
我一直在尝试在我的 Scala Play 服务器上上传文件。我已经按照
Play framework 文档页面上给出的处理文件上传的教程进行操作。按照那里提供的说明,我首先fileuploadform.scala.html
在views
文件夹中创建了一个 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 上运行
当我点击 urlip.ip.ip.ip:xxxx/uploadForm
时,我得到一个编译错误
not found: value Paths
该行val filename = Paths.get(picture.filename).getFileName
被突出显示。
我是否缺少一些要添加的库或一些语法修改?
解决方案
您需要导入以下内容:
import java.nio.file.Paths
推荐阅读
- mysql - MYSQL按组获取计数百分比
- python - Tkinter 标签小部件显示与其他标签小部件不对齐?
- python - 使用多个连接的箱线图更改 Matplotlib 中的轴刻度
- javascript - Sapper/Svelte - 如何定期获取
- cmake - cmake命令中--j 8是什么意思
- docker - 如何将 Dockerized 多图像 JS 应用程序部署到 Heroku?
- python - 使用 convertapi 在 python 中合并 PDF
- python - 在有条件的熊猫中查找重复项(Python)
- twilio - 有没有办法从 Twilio 传递“Call-Info”SIP INVITE 请求标头?
- jquery - 如何在 jquery 中使用 Promise?