Я пытался загрузить файл на мой сервер 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
подсвечивается.
Мне не хватает какой-то библиотеки, которую нужно добавить, или какую-то модификацию синтаксиса?