0

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

看起来可能相关的花絮:

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

谢谢你的帮助。

4

1 回答 1

0

而罪魁祸首呢?finalize9 多年前做“清理”的流浪方法。

于 2012-03-08T15:39:11.760 回答