我正在使用2.2.3版本的Play Framework,我的上传文件片段如下:
def process = SecuredAction(false, None, parse.temporaryFile) {
request =>
val uploadedFile = request.body.file
service.processFile(uploadedFile)
...
}
这个parse.temporaryFile解析器使用与此类似的文件来污染我的临时文件夹: requestBody4950142040693742317asTemporaryFile_1424693062067.zip。我想从我的临时文件夹中删除这些文件。有任何建议如何防止它们被创建或如何在上传后删除它们?
答案 0 :(得分:1)
我从未使用Play的上传,但似乎你可以这样做:
service.processFile(uploadedFile)
request.body.clean()
Ok("All done!")
我假设service.processFile在这里是同步的。
答案 1 :(得分:1)
@AndreasDuRietz是正确的,您可以调用request.body.clean()
,这只是删除基础File
的别名。但是,这不是必需的。 TemporaryFile
会覆盖finalize
,当对象被垃圾回收时会为您调用clean()
。
请参阅source。
答案 2 :(得分:0)
/*delete to-server-temp-folder uploaded file*/
request.body.file("Img").foreach {
case FilePart(_, _, _, ref, _, _) =>
val file = new File(ref.path.toString)
if (file.exists()) file.delete()
}
答案 3 :(得分:0)
播放! 2.7.x
request.body.delete()