从我的服务器日志中,当我尝试在 FileItem 上调用 getInputStream 时:
6/22/12 14:31:14 ERROR c.s.u.WizardUploadReceiver:225 | Jumploader: Problem uploading zip13afcchr.psd - Failed to handle post properly
java.io.FileNotFoundException: uploadtemp\upload__3e026c78_13815404c62__7ff2_00000141.tmp (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method) ~[na:1.6.0_23]
at java.io.FileInputStream.<init>(FileInputStream.java:106) ~[na:1.6.0_23]
at org.apache.commons.fileupload.disk.DiskFileItem.getInputStream(DiskFileItem.java:236) ~[commons-fileupload-1.2.2.jar:1.2.2]
...
据我所知,我已经验证了关联的 File 和 FileItem 以及 DiskFileItemFactory 直到我的 servlet 方法返回后才超出范围(有资格进行垃圾收集)。
我只是在寻找可能导致 FileUpload 过早删除这些临时文件的其他潜在情况。
附加信息:我只在特定客户端上传文件时看到此问题。发送到其他客户端上的相同 servlet 的相同文件似乎不会导致此问题。我还没有发现有问题的客户和没有问题的客户之间的区别。