2012-08-05 2 views
6

Ich benutze this Tutorial, um eine Datei in meine Play-Framework-Anwendung hochzuladen. Ich benutze den exakt gleichen Code, aber ich bekomme folgenden Fehler.scala play framework Dateiupload Fehler

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

Folgende ist mein 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" 
        ) 
     } 
    } 

Ich stecke hier bitte helfen.

EDIT: Hier ist mein voller 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... 

Antwort

9

Sehen aus wie Sie die vollständigen Dateinamen angeben müssen für moveTo

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

verdammt. Ich bin so dumm. Danke. (Ich habe versucht, in mein Desktop-Verzeichnis zu schreiben (welches eine Datei ist)) – riship89