Загрузка нескольких файлов в Scala Play - PullRequest
0 голосов
/ 21 сентября 2018

Я пытался загрузить файл на мой сервер Scala Play.Я следовал руководству, данному на странице документации Play Framework, посвященной загрузке файлов .Следуя приведенным там инструкциям, я сначала создал HTML-страницу с именем fileuploadform.scala.html в папке views.Файл содержит следующий код

@helper.form(action = routes.ScalaFileUploadController.upload, 'enctype -> "multipart/form-data") {

<input type="file" name="picture">

<p>
    <input type="submit">
</p>

}

Затем я создал два действия в контроллере.Один из них выполнит запрос GET для загрузки fileuploadform html, а другой выполнит запрос 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

Когда я нажимаю на ссылку ip.ip.ip.ip:xxxx/uploadForm, я получаю сообщение об ошибке

not found: value Paths

, и строка val filename = Paths.get(picture.filename).getFileName подсвечивается.

Мне не хватает какой-то библиотеки, которую нужно добавить, или какую-то модификацию синтаксиса?

1 Ответ

0 голосов
/ 21 сентября 2018

Вам необходимо импортировать следующее:

import java.nio.file.Paths
...