From 12441b157e38abdfe7eeb94bb7197fcb90f00b48 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期一, 05 九月 2022 17:03:56 +0800
Subject: [PATCH] 修复问题

---
 src/main/java/com/whyc/service/MaterialService.java |   22 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/whyc/service/MaterialService.java b/src/main/java/com/whyc/service/MaterialService.java
index e0b1a16..32da0d0 100644
--- a/src/main/java/com/whyc/service/MaterialService.java
+++ b/src/main/java/com/whyc/service/MaterialService.java
@@ -365,8 +365,8 @@
         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();
@@ -376,27 +376,34 @@
 
         //鍘嬬缉鍖呮枃浠跺す鏍¢獙
         File zipFile = new File(dirPath + File.separator + originalFilename);
+        boolean dirFileExist = true;
+        if(!dirFile.exists()){
+            dirFile.mkdirs();
+            dirFileExist = false;
+        }
         multipartFile.transferTo(zipFile);
         //瑙e帇鏂囦欢澶�,鍒犻櫎鍘焭ip鏂囦欢
         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){
             //璺緞涓嶅瓨鍦�,璇存槑鏄娆′笂浼�,璁剧疆鐗╂枡瀵瑰簲鐨刦ileUrl
             Material temp = new Material();
             temp.setId(material.getId());
-            temp.setFileUrl(dirPath);
+            temp.setFileUrl(dirPathDB);
             mapper.updateById(temp);
         }else{
             //鏌ヨ璺緞涓嬬幇鏈夌殑鎵�鏈夋枃浠�
@@ -410,11 +417,12 @@
         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,"涓婁紶瀹屾垚");
     }

--
Gitblit v1.9.1