问题描述
我在Servlet中使用Tomcat 9和Apache Commons ServletFileUpload API
private static DiskFileItemFactory diskFileItemFactory;
public void init() throws ServletException {
diskFileItemFactory = getDiskFileItemFactory(getServletConfig().getServletContext(),2*1024*1024,new File(System.getProperty("java.io.tmpdir")));
}
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
try {
boolean isMultiPart = ServletFileUpload.isMultipartContent(request);
List<FileItem> items = null;
if (isMultiPart) {
ServletFileUpload upload = new ServletFileUpload(diskFileItemFactory);
upload.setSizeMax(2*1024*1024);
items = upload.parseRequest(request);
int instance = 0;
for (FileItem item : items) {
if (!item.isFormField()) {
String fieldname = item.getFieldName();
String filename = FilenameUtils.getName(item.getName());
File userDirectory = new File('c:\\test');
String extension = filename.replaceAll("^.*\\.",".").toLowerCase();
String landingFilename = "image" + (instance++) + extension;
File f = new File(userDirectory,landingFilename);
item.write(f);
item.delete();
}
}
}
}
}
public static DiskFileItemFactory getDiskFileItemFactory(ServletContext context,int maxSize,File repository) {
FileCleaningTracker fileCleaningTracker = FileCleanerCleanup.getFileCleaningTracker(context);
DiskFileItemFactory factory = new DiskFileItemFactory(maxSize,repository);
factory.setFileCleaningTracker(fileCleaningTracker);
factory.setSizeThreshold(2*1024*1024);
return factory;
}
}
我的问题是文件上传到服务器并放置在c:\ test中之后,它们已被tomcat锁定。当我尝试删除它们时,我会得到
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)