2017-04-11 46 views
0

我有一个方法已经有一个FilePart [TemporaryFile],我会调用另一种方法发送一个多部分表单数据。本方法采用斯卡拉发挥2.4.X和我一直在使用下面宁的方法来发送:如何将Scala FilePart转换为文件(Java)以用于多部分表单数据?

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?

回答

0

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

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