2012-08-05 63 views
6

我正在使用this教程來上傳我的play framework應用程序中的文件。我使用的是完全相同的代碼,但出現以下錯誤。scala播放框架文件上傳錯誤

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

以下是我的代碼:

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" 
        ) 
     } 
    } 

我堅持在這裏,請幫助。

編輯: 這裏是我完整的堆棧跟蹤:

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... 

回答

9

看起來你需要爲moveTo

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

該死指定完整的文件名。我很愚蠢。謝謝。 (我試圖寫入我的桌面目錄(這是一個文件)) – riship89 2012-08-05 07:24:48