我在Servlet类的doPost中有以下代码。
我面临的问题有时候,当我在数据库表中保存记录时,fileName和size会重复出现,即多次插入相同的文件名和大小,但是当它保存到目录时,所有文件都会被保存没有任何重复。
e.g。如果我保存10个文件名,spring-security-ntlm-3.0.2.SNAPSHOT.jar
会重复两次,而jsf-api-2.0.3.jar
会被删除,但文件会正确写入文件服务器
这可能是什么原因以及如何解决问题?
List<FileItem> items = uploadHandler.parseRequest(request);
for (FileItem item: items) {
fileName = item.getName();
if (fileName != null) {
fileName = FilenameUtils.getName(fileName);
}
if (!item.isFormField()) {
File file = new File(folderName + fileName);
item.write(file);
projectList = new ArrayList<Project>();
projectList.add(lessonAttachment);
for (Project obj: projectList) {
obj.setProjectId("M2K90");
obj.setFileName(fileName);
Integer size = (int)(long)item.getSize();
obj.setSize(size);
myDAO.saveProject(projectList);
}
}
}
答案 0 :(得分:2)
projectList
将保存projectList
大小的次数。 myDAO.saveProject(projectList);
应该在for循环之外。