【发布时间】:2014-01-03 16:38:12
【问题描述】:
我有一个上传 servlet,它工作得很好,但它的临时文件仍然存在。我正在尝试使用 part.delete() 来清理它们,但它们并没有被删除。
文档说容器在进行 GC 时会删除它们。但是即使我等了一个小时并最终关闭了服务器,它们仍然在那里......
有什么诀窍?目前是 Windows 上带有 Tomcat 7.0.47 的 Eclipse Kepler。但生产将是 Linux。
谢谢
大大压缩的代码:
@MultipartConfig(location = "C:/tmp",
fileSizeThreshold=1024*1024*10, // 10MB
maxFileSize=1024*1024*10, // 10MB
maxRequestSize=1024*1024*50) // 50MB
@WebServlet("/upload.do")
...
for (Part part : request.getParts()) {
String filename = getFilename(part);
if(!(filename==null)){
part.write("/elsewhere/"+filename);
part.delete();
} else {
out.println("skip field...");
}
}
【问题讨论】:
-
无关,但
if (filename != null) -
Part 的全名是什么?
-
不确定您的意思?班上? javax.servlet.http.Part 和请求来自受保护的 void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {... 使用新的 Servlet 3.0 东西。
标签: java servlets multipartform-data servlet-3.0