简体   繁体   English

scala播放框架文件上传错误

[英]scala play framework file upload error

I am using this tutorial to upload a file in my play framework application. 我正在使用教程在我的播放框架应用程序中上传文件。 I am using the exact same code but I get following error. 我使用完全相同的代码,但我得到以下错误。

[IOException: Path(/Users/hrishikeshparanjape/Desktop) exists but replace parameter is false]

Following is my code: 以下是我的代码:

def upload = Action(parse.multipartFormData) { request =>
        request.body.file("picture").map { picture =>
            import java.io.File
            val filename = picture.filename 
            val contentType = picture.contentType
            picture.ref.moveTo(new File("/Users/hrishikeshparanjape/Desktop/"))
            Ok("File uploaded")
        }.getOrElse {
            Redirect(routes.Application.index).flashing(
                    "error" -> "Missing file"
                    )
        }
    }

I am stuck here please help. 我被困在这里请帮助。

EDIT: Here is my full stack trace: 编辑:这是我的完整堆栈跟踪:

play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[IOException: Path(/Users/hrishikeshparanjape/Desktop) exists but replace parameter is false]]
    at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:134) [play_2.9.1.jar:2.0.2]
    at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:115) [play_2.9.1.jar:2.0.2]
    at akka.actor.Actor$class.apply(Actor.scala:318) [akka-actor.jar:2.0.2]
    at play.core.ActionInvoker.apply(Invoker.scala:113) [play_2.9.1.jar:2.0.2]
    at akka.actor.ActorCell.invoke(ActorCell.scala:626) [akka-actor.jar:2.0.2]
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:197) [akka-actor.jar:2.0.2]
Caused by: java.io.IOException: Path(/Users/hrishikeshparanjape/Desktop) exists but replace parameter is false
    at scalax.file.Path$.fail(Path.scala:168) ~[scala-io-file_2.9.1.jar:0.4.0]
    at scalax.file.Path.moveTo(Path.scala:1089) ~[scala-io-file_2.9.1.jar:0.4.0]
    at play.api.libs.Files$.moveFile(Files.scala:76) ~[play_2.9.1.jar:2.0.2]
    at play.api.libs.Files$TemporaryFile.moveTo(Files.scala:30) ~[play_2.9.1.jar:2.0.2]
    at controllers.Application$$anonfun$upload$1$$anonfun$apply$1.apply(Application.scala:17) ~[classes/:2.0.2]
    at controllers.Application$$anonfun$upload$1$$anonfun$apply$1.apply(Application.scala:13) ~[classes/:2.0.2]
[info] Compiling 1 Scala source to /Users/hrishikeshparanjape/git-public/printit/target/scala-2.9.1/classes...

Looks like you need to specify the complete file name for moveTo 看起来您需要为moveTo指定完整的文件名

picture.ref.moveTo(new File(
  "/Users/hrishikeshparanjape/Desktop/" + picture.filename))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM