2012-03-30 83 views
0

我正在研究一个在线文档管理系统,用户可以将多个文档作为一个ZIP文件下载。这些文件可以很大,以便在内存中完整处理,所以在这种情况下,我们使用临时文件。然后使用Http11NioProtocol将该临时文件发送到客户端,并将org.apache.tomcat.sendfile设置为临时文件。问题是在将文件传输到客户端浏览器后,服务器被暂时保存为临时文件。Tomcat NIO和Sendfile清理文件发送

Ofc。可以使用deleteAfterExit或某种类型的tempFileManager,但是我正在寻找的是一种在完成文件传输时注册处理函数的方法,或者具有某种可用于清理临时文件的回调函数?

回答

0

如果您在Linux上运行,即使传输尚未完成,也可以安全地删除文件。你不能马上删除这个文件,因为tomcat的sendfile代码必须能够打开这个文件,但你可能会在一分钟后安全地删除这个文件。

+0

这样做与使用tempfileManager注册文件有很大的不同,在设置下载1分钟后删除文件。我宁愿做一些行动,只要下载完成,并不希望文件在x分钟后可以删除 – kali 2012-04-04 07:36:54