如何在Web应用程序中从磁盘中正常删除文件?

时间:2015-05-13 21:54:51

标签: java spring temporary-files

在我们基于某种逻辑的Web应用程序中,我们在磁盘上生成一个文件。然后用户的浏览器可以请求该文件。这将通过使用ajax来完成。我想在不需要时删除该文件。到目前为止我所做的是在以下情况下删除:

  1. 当文件发送回用户时成功完成逻辑
  2. 如果在发送之前有任何失败(如果出现异常我正在删除文件。另外我已经覆盖了finalize方法,所以在垃圾收集的情况下它也会被删除)。
  3. 如果用户的会话终止。使用侦听HttpSessionDestroyedEvent的侦听器。这包括用户请求文件然后在交付之前关闭浏览器的情况。
  4. 关于我的应用程序的一些信息:基于Spring的应用程序,并使用注入了代理(aop scoped-proxy)的单例范围bean来处理会话中的文件位置。

    现在,问题是:如果用户在浏览器中打开两个选项卡并在其中一个选项卡中请求文件(假设其运行时间很长),并在第二个选项卡中注销系统。在这种情况下,将生成文件,并且系统无法自动删除。我该如何处理这种情况?

0 个答案:

没有答案