因此,基本上,我正在编写一些代码,这些代码将使用户可以将文件上传到服务器。我已经成功通过HTML表单(带有MultiPart.FormData)上传了文件,但是当我尝试'curl -X POST -F file =“ filepath” localhost:8080 / upload'时,却找不到'404 '消息。
我已经阅读了有关Akka的文档,但是我只是不知道为什么它会以一种方式起作用而不能以另一种方式起作用。我在这里做什么错了?
val route =
post {
path("upload") {
fileUpload("file") {
case (metadata, byteSource) =>
val sink = FileIO.toPath(Paths.get("path of the image") resolve metadata.fileName)
val writeResult = byteSource.runWith(sink)
onSuccess(writeResult) { _ =>
complete("file got uploaded")
}
}
}
} ~
complete("404 not found")
答案 0 :(得分:0)
您可以在path directive source中看到它接受路径末尾的路径前缀。因此,如果您使用path("upload")
,它将仅接受以/upload/
结尾的路径,而不会接受以/upload
结尾的路径(不包含路径结束符号/
)。
如果您不想同时使用/upload/
和/upload
路径,则应使用
pathPrefix("upload") ~ pathEndOrSingleSlash
此外,您可以使用ignoreTrailingSlash directive。