java Grails发送文件,然后删除
我正在使用响应发送文件<&书信电报;文件newInputStream(与此答案here类似,但我想在以后删除此文件。但是,当我对此文件调用delete时,它不会删除它。我很确定这是因为该文件仍在使用(流式处理)。如何检查此项,然后删除
def tempfile = new File(filename)
if (tempfile) {
response.setContentType("application/octet-stream")
response.setHeader("Content-disposition", "attachment;filename=${tempfile.getName()}")
response.outputStream << tempfile.newInputStream()
} else {
renderErrorMsg("ERROR: Cannot open/find file - ${filename}.")
}
tempfile.delete()
谢谢
# 1 楼答案
您没有关闭输入流。改变
到
后者将确保流关闭。此外,您可能希望删除finally块中的文件,以防引发异常