Tomcat 在请求完成时删除文件?
-
09-12-2019 - |
题
我遇到了一个非常奇怪的问题。我在用着 commons-fileupload
(1.2.1) 在我的 web 应用程序中处理文件上传(托管在 tomcat 7.0.23 中,并且 distributable
标志已设置)。一旦我得到一个 DiskFileItem
来自我的实例 DiskFileItemFactory
(不 FileCleaningTracker
),我用它的 write
方法来存储文件(在同一目录中 DiskFileItemFactory
配置为在文件流入时需要将文件写入磁盘的情况下使用)。问题是这个新文件(由我显式创建和命名)在请求处理完成后被删除。正如您可以想象的那样,当我需要再次访问该文件时,这是有问题的。
看起来可能相关的花絮:
- 有问题的目录不是 servlet 上下文中的默认临时目录,也不是 Tomcat 目录下的目录。
- 在备用代码路径中,我立即复制该文件(而不是在不同的请求中),并且 那 副本不会被删除。
- 即使我
chmod a-w
请求完成之前的文件,当请求完成时它仍然会被删除。
谢谢你的帮助。
解决方案
罪魁祸首呢?一只流浪者 finalize
9年前的方法进行“清理”。
不隶属于 StackOverflow