保存在数据库表中时,文件名和大小会重复

时间:2013-10-28 05:49:12

标签: java file-io

我在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);
                    }
            }

        }

1 个答案:

答案 0 :(得分:2)

projectList将保存projectList大小的次数。 myDAO.saveProject(projectList);应该在for循环之外。