如何将Scala FilePart转换为文件(Java)以在多部分表单数据中使用?

时间:2017-04-11 21:00:24

标签: java scala playframework multipartform-data

我有一个已经有FilePart [TemporaryFile]的方法,我将调用另一个方法来发送多部分表单数据。这个方法使用scala play 2.4.X,我必须使用下面的ning方法发送它:

 def sendFile(file: FilePart[TemporaryFile]): Option[Future[Unit]] = {

   val asyncHttpClient:AsyncHttpClient = WS.client.underlying

   val postBuilder = asyncHttpClient.preparePost(s"${config.ocrProvider.host}")

   val multiPartPost = postBuilder
     .addBodyPart(new StringPart("access_token",s"${config.ocrProvider.accessToken}"))
     .addBodyPart(new StringPart("typename",s"${config.ocrProvider.typeName}"))
     .addBodyPart(new StringPart("action",s"${config.ocrProvider.actionUpload}"))
     .addBodyPart(new FilePart(**expects java.io.File not FilePart**)
 }

如何利用此参数并发送为java.io.File?

1 个答案:

答案 0 :(得分:0)

您需要将file: FilePart[TemporaryFile]的内容写入磁盘,然后使用该文件构建新的多部分请求。您可以看到此示例Scala File Upload

val tempFile = new File("/tmp/some/path")
file.ref.moveTo(tempFile)
val filePart = new FilePart(tempFile)