玩! FrameWork:我在将图像上传到我的服务器时遇到问题

Play! FrameWork: I'm having a problem uploading an image to my server

我希望有人能帮助我。我使用以下代码片段将图像上传到我的服务器(这是从此处复制的:https://www.playframework.com/documentation/2.8.x/ScalaFileUpload

```def upload = Action(parse.multipartFormData) { request =>
    request.body
        .file("file")
        .map { picture =>
        
        val filename    = Paths.get(picture.filename).getFileName
        val fileSize    = picture.fileSize
        val contentType = picture.contentType

        // Test Print
        print("content Type: "+contentType)
        print("filename: "+filename)
        print("filesize: "+fileSize)

        picture.ref.copyTo(Paths.get(s"/tmp/picture/$filename"), replace = true)
        Ok("File uploaded")
        }
        .getOrElse {
        null //TODO: changeme
        }
    }```

我用我的打印方法检查了文件名、文件大小和内容类型,它似乎工作正常..

但我总是遇到以下异常:

java.lang.ClassCastException: xsbti.BasicVirtualFileRef cannot be cast to java.io.File
        at play.sbt.run.PlayReload$.$anonfun$sourceMap(PlayReload.scala:70)
        at scala.collection.MapLike$MappedValues.get(MapLike.scala:261)
        at play.runsupport.Reloader.$anonfun$findSource(Reloader.scala:552)
        at scala.Option.flatMap(Option.scala:271)
        at play.runsupport.Reloader.findSource(Reloader.scala:551)
        at play.core.server.DevServerStart$$anon$$anon.sourceOf(DevServerStart.scala:174)
        at play.core.SourceMapper.$anonfun$sourceFor(ApplicationProvider.scala:22)
        at play.core.SourceMapper.$anonfun$sourceFor$adapted(ApplicationProvider.scala:22)
        at scala.collection.IndexedSeqOptimized.$anonfun$find(IndexedSeqOptimized.scala:53)
        at scala.collection.IndexedSeqOptimized.$anonfun$find$adapted(IndexedSeqOptimized.scala:53)

一些确凿的事实:

我真的希望有人能帮助我:)。如果您需要更多信息来提供帮助,请问我:)

谢谢!

根据 this thread,Play 在某些 SBT 版本上可能会出现问题,反之亦然。

This workaround 可能适合你。

Play 2.8.8 也有此问题 patched,因此请尝试更新到最新版本。