如何转换播放! 2.0将Scala文件转换为CSVReader的格式?

时间:2012-06-21 22:07:43

标签: scala playframework-2.0

我在使文件上传工作正常时遇到一些问题,以下代码无法编译。

错误overloaded method constructor File with alternatives: (java.net.URI)java.io.File <and> (java.lang.String)java.io.File cannot be applied to (play.api.mvc.MultipartFormData.FilePart[play.api.libs.Files.TemporaryFile])

代码

def csvimport = Action(parse.multipartFormData) { request =>
      request.body.file("files[]").map { rawfile =>

        val filename = rawfile.filename 
        val contentType = rawfile.contentType
        val tmpFile = new File(rawfile)

        val reader = new CSVReader(new FileReader(tmpFile))

        Ok
      }
      .getOrElse {
        Logger.debug(request.body.toString)
        BadRequest
      }
    }

在运行CSVReader之前,是否需要暂时将文件存储到磁盘?有没有办法将原始文件上传转换为内存中的新File类?

谢谢!

2 个答案:

答案 0 :(得分:1)

我想你想要实现的目标

https://stackoverflow.com/a/11059295/317452

https://gist.github.com/2939230

这会逐步解析文件的块,而不会将整个原始文件放在内存或磁盘上。

答案 1 :(得分:0)

有同样的问题:

尝试:

request.body.file("Image").ref.file // Java.io.File

request.body是play.api.mvc.MultipartFormData

request.body.file(“Image”)。ref是play.api.libs.Files.TemporaryFile here:https://www.playframework.com/documentation/2.0/api/scala/play/api/libs/Files $$ TemporaryFile.html