Tomcat在请求完成后删除文件?

时间:2012-03-08 03:45:26

标签: java tomcat delete-file apache-commons-fileupload

我遇到了一个非常奇怪的问题。我正在使用commons-fileupload(1.2.1)处理我的webapp中的文件上传(托管在tomcat 7.0.23中,并设置了distributable标志)。从DiskFileItem(无DiskFileItemFactory)获取FileCleaningTracker实例后,我使用其write方法存储文件(与{{1}相同的目录中) }配置为使用,以防它在流式传输时需要将文件写入磁盘)。问题是这个新文件(由我明确创建和命名)然后在请求完成处理后被删除。可以想象,当我需要再次访问该文件时,这是有问题的。

看起来可能相关的花絮:

  • 有问题的目录不是servlet上下文的默认临时目录,也不在Tomcat目录下。
  • 在备用代码路径中,我立即复制该文件(而不是在不同的请求中),并且 THAT 副本不会被删除。
  • 即使我DiskFileItemFactory请求完成之前的文件,它仍会在请求完成时被删除。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

罪魁祸首? 9年以前的一种流浪finalize方法做“清理”。