我正在尝试使用 scala 在播放框架中上传多个大文件。我仍然是一个 scala 和玩菜鸟。
我从这里得到了一些很棒的代码,它让我完成了 90% 的工作,但现在我又被卡住了。
我现在遇到的主要问题是我只能读取文件数据,而不能读取任何其他已上传的数据,并且在浏览播放文档之后,我不清楚如何从这里获取。任何建议表示赞赏!
  def directUpload(projectId: String) = Secured(parse.multipartFormData(myFilePartHandler)) { implicit request =>
    Ok("Done");
  }
def myFilePartHandler: BodyParsers.parse.Multipart.PartHandler[MultipartFormData.FilePart[Result]] = {
    parse.Multipart.handleFilePart {
      case parse.Multipart.FileInfo(partName, filename, contentType) =>
        println("Handling Streaming Upload:" + filename + "/" + partName + ", " + contentType);
        //Set up the PipedOutputStream here, give the input stream to a worker thread
        val pos: PipedOutputStream = new PipedOutputStream();
        val pis: PipedInputStream = new PipedInputStream(pos);
        val worker: UploadFileWorker = new UploadFileWorker(pis,contentType.get);
        worker.start();
        //Read content to the POS
        play.api.libs.iteratee.Iteratee.fold[Array[Byte], PipedOutputStream](pos) { (os, data) =>
          os.write(data)
          os
        }.mapDone { os =>
          os.close()
          worker.join()
          if( worker.success )
            Ok("uplaod done. Size: " + worker.size )
          else
            Status(503)("Upload Failed");
        }
    }
  }