【问题标题】:Multipart file upload in Scala PlayScala Play 中的多部分文件上传
【发布时间】: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


    【解决方案1】:

    您需要导入以下内容:

    import java.nio.file.Paths
    

    【讨论】:

      猜你喜欢
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 2020-05-03
      • 2018-10-15
      • 2014-10-31
      • 2017-11-05
      相关资源
      最近更新 更多