【发布时间】:2012-06-22 21:39:30
【问题描述】:
从我的服务器日志中,当我尝试在 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]
...
据我所知,在我的 servlet 方法返回之前,我已经验证了关联的 File 和 FileItem 以及 DiskFileItemFactory 不会超出范围(有资格进行垃圾回收)。
我只是在寻找可能导致 FileUpload 过早删除这些临时文件的其他潜在情况。
附加信息:我只在特定客户端上传文件时看到此问题。发送到其他客户端上的相同 servlet 的相同文件似乎不会导致此问题。我还没有发现有问题的客户和没有问题的客户之间的区别。
【问题讨论】:
-
您的根目录中是否有“uploadtemp”目录?
-
请注意,您有两个错误。
Problem uploading...后跟FileNotFoundException。 -
ilya - 是的,在应用根目录下的子目录中
-
Jim Garrison - 您误读了日志消息。我正在记录一条自定义消息以及相关的异常堆栈跟踪。您可能需要阅读日志框架。
-
你是在使用 Jumploader 上传文件吗?
标签: java apache servlets file-upload