1

我有一个文件上传页面,它接受一个文件并对其进行解析。

事件顺序

  1. 用户上传文件
  2. 上传的文件被复制
  3. 使用CPDetector对复制的文件进行编码检查
  4. 从复制的文件中确定的编码用于解析原始上传的文件
    • FileNotFoundExceptionBufferedReader在创建期间在 Solaris 测试服务器上。
  5. 复制的文件被删除
  6. 上传的文件被解析/验证
  7. 解析后的数据保存到数据库
  8. 上传的文件被删除(我不记得我是这样做还是Tomcat是。)

整个过程在我的 Windows 7 工作站上运行。如上所述,它不适用于我的 Solaris 测试服务器。在我完成解析之前,某些东西(我怀疑 Tomcat)正在删除上传的文件。

我在此过程中查看了该目录,并且确实创建了一个上传的文件,但它在被删除之前持续了不到一秒钟。它也应该进入/opt/tomcat/,但似乎是在/var/opt/csw/tomcat6/temp/目录中创建的。

谢谢你的帮助

4

1 回答 1

0

我意识到这样回答我自己的问题可能是不好的形式,但我想把它留在这里,以防它帮助别人。

问题原来是我如何访问文件。

我有硬编码的文件路径,用于 Windows,以及用于测试服务器的数据库加载路径。我将它们切换为使用System.getProperty("catalina.home")+"/temp/" + filename 我还第二次复制临时文件,所以我最终得到:

事件顺序(更改以粗体显示)

  1. 用户上传文件
  2. 上传的文件被复制
  3. 使用CPDetector对复制的文件进行编码检查
  4. 上传的文件被再次复制以确保副本能够被解析
  5. 从复制的文件中确定的编码用于解析原始上传的文件
  6. 用于编码检测的副本被删除
  7. 解析的副本被解析/验证
  8. 解析后的数据保存到数据库
  9. 解析的文件被删除。
  10. 上传的文件被删除(我不确定我是这样做还是Tomcat是。)
于 2012-08-14T21:46:57.387 回答