| | |
| | | List<String> currentFileList = new LinkedList<>(); |
| | | List<String> uploadingFileList = new LinkedList<>(); |
| | | |
| | | //String dirPath = "doc_file" + File.separator + "material" + File.separator + material.getId() + material.getSubCode() + material.getSubModel(); |
| | | String dirPath = CommonUtil.getRootFile() + "material" + File.separator + material.getId() + material.getSubCode() + material.getSubModel(); |
| | | String dirPathDB = "doc_file" + File.separator + "material" + File.separator + material.getId() + "-"+ material.getSubCode() + "-" + material.getSubModel(); |
| | | String dirPath = CommonUtil.getRootFile() + "material" + File.separator + material.getId() + "-"+ material.getSubCode() + "-" + material.getSubModel(); |
| | | File dirFile = new File(dirPath); |
| | | |
| | | String originalFilename = multipartFile.getOriginalFilename(); |
| | |
| | | |
| | | //压缩包文件夹校验 |
| | | File zipFile = new File(dirPath + File.separator + originalFilename); |
| | | boolean dirFileExist = true; |
| | | if(!dirFile.exists()){ |
| | | dirFile.mkdirs(); |
| | | dirFileExist = false; |
| | | } |
| | | multipartFile.transferTo(zipFile); |
| | | //解压文件夹,删除原zip文件 |
| | | String unPackageDir = dirPath + File.separator + timestamp; |
| | | Zip4jUtil.unPackZip(zipFile, null, unPackageDir); |
| | | File unPackageFile = new File(unPackageDir); |
| | | File[] unPackageFileList = unPackageFile.listFiles(); |
| | | zipFile.delete(); |
| | | for (int i = 0; i < unPackageFileList.length; i++) { |
| | | File tempFile = unPackageFileList[i]; |
| | | if(tempFile.isDirectory()){ |
| | | FileUtil.deleteFile(unPackageFile); |
| | | if(!dirFileExist){ |
| | | FileUtil.deleteFile(dirFile); |
| | | } |
| | | return new Response().set(1,false,"拒绝上传:上传的压缩包存在文件夹"); |
| | | } |
| | | } |
| | | zipFile.delete(); |
| | | |
| | | if(!dirFile.exists()){ |
| | | dirFile.mkdirs(); |
| | | if(!dirFileExist){ |
| | | //路径不存在,说明是首次上传,设置物料对应的fileUrl |
| | | Material temp = new Material(); |
| | | temp.setId(material.getId()); |
| | | temp.setFileUrl(dirPath); |
| | | temp.setFileUrl(dirPathDB); |
| | | mapper.updateById(temp); |
| | | }else{ |
| | | //查询路径下现有的所有文件 |
| | |
| | | for (String uploadingFile : uploadingFileList){ |
| | | if(currentFileList.contains(uploadingFile)){ |
| | | new File(unPackageDir + File.separator + uploadingFile) |
| | | .renameTo(new File(unPackageDir + File.separator + formattedTimestamp + uploadingFile)); |
| | | .renameTo(new File(unPackageDir + File.separator + uploadingFile.substring(0,uploadingFile.lastIndexOf(".")) + "_" + formattedTimestamp + uploadingFile.substring(uploadingFile.lastIndexOf(".")))); |
| | | } |
| | | } |
| | | //上传的文件夹转移到正式路径 |
| | | org.aspectj.util.FileUtil.copyDir(unPackageFile,dirFile); |
| | | FileUtil.deleteFile(unPackageFile); |
| | | |
| | | return new Response().set(1,true,"上传完成"); |
| | | } |