使用 java.io.FileInputStream 和 Scala 将文件从 Play webapp 上传到另一个网站
Upload a file from Play webapp to another website using java.io.FileInputStream with Scala
在我的控制器中,我定义了一个上传方法,该方法应该流式传输用户通过我的网站上传到第三方网站(如 Dropbox 或 Box.com)的文件。我受到 JavaApi 的限制(我为此编写了一个包装器)。我必须给它一个 java.io.FileInputStream 但我不知道如何。
这是方法:
def upload(parentId: String) = Action.async { implicit request =>
authorized(request, { user =>
val body = request.body.asMultipartFormData
// somehow i have to transform the body from request to a FileInputStream
val stream: FileInputStream = new FileInputStream(file)
ApiJava.pseudoUpload(user.token, parentId, stream);
Redirect(routes.Application.showFolder(parentId))
})
}
请求按标准发送
@helper.form(action = routes.File.pseudoUpload(currentId), 'enctype -> "multipart/form-data") {
<input type="file" name="upoadThis">
<input type="submit">
}
非常感谢您的帮助!
我会这样做:
def upload(parentId: String) = Action.async(parse.multipartFormData) { implicit request =>
authorized(request, { user =>
request.body.file("upoadThis").map { uploadThis =>
new FileInputStream(receivedFile.ref.file)
...
在将文件流式传输到 Dropbox 或其他任何人之前,将文件临时存储到磁盘。
有关详细信息,请参阅 documentation。
在我的控制器中,我定义了一个上传方法,该方法应该流式传输用户通过我的网站上传到第三方网站(如 Dropbox 或 Box.com)的文件。我受到 JavaApi 的限制(我为此编写了一个包装器)。我必须给它一个 java.io.FileInputStream 但我不知道如何。
这是方法:
def upload(parentId: String) = Action.async { implicit request =>
authorized(request, { user =>
val body = request.body.asMultipartFormData
// somehow i have to transform the body from request to a FileInputStream
val stream: FileInputStream = new FileInputStream(file)
ApiJava.pseudoUpload(user.token, parentId, stream);
Redirect(routes.Application.showFolder(parentId))
})
}
请求按标准发送
@helper.form(action = routes.File.pseudoUpload(currentId), 'enctype -> "multipart/form-data") {
<input type="file" name="upoadThis">
<input type="submit">
}
非常感谢您的帮助!
我会这样做:
def upload(parentId: String) = Action.async(parse.multipartFormData) { implicit request =>
authorized(request, { user =>
request.body.file("upoadThis").map { uploadThis =>
new FileInputStream(receivedFile.ref.file)
...
在将文件流式传输到 Dropbox 或其他任何人之前,将文件临时存储到磁盘。
有关详细信息,请参阅 documentation。