From 602be3f64c3709f9773284c48ca8aead180d060f Mon Sep 17 00:00:00 2001
From: zmk <496160012@qq.com>
Date: 星期三, 29 五月 2024 12:21:06 +0800
Subject: [PATCH] 修改了上传文件的逻辑

---
 javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java |   78 +++++++++++++++++++++++++++++---------
 javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/upload.html               |    3 -
 2 files changed, 60 insertions(+), 21 deletions(-)

diff --git a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
index 030592f..12908f6 100644
--- a/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
+++ b/javaweb-plus/javaweb-cms/src/main/java/com/javaweb/geo/service/impl/ProjectDataServiceImpl.java
@@ -1,14 +1,17 @@
 package com.javaweb.geo.service.impl;
 
 import java.io.File;
+import java.io.IOException;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.List;
 
 import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ZipUtil;
 import com.javaweb.common.config.Global;
 import com.javaweb.common.core.domain.AjaxResult;
+import com.javaweb.common.exception.BusinessException;
 import com.javaweb.common.utils.DateUtils;
 import com.javaweb.common.utils.IdGenerate;
 import com.javaweb.common.utils.StringUtils;
@@ -46,6 +49,9 @@
 
     //瑙e帇鏂囦欢
     private static String ZIPUploadPath2 = Global.getProfile() + "\\" + zipfile2 + "\\";
+
+    //鍗曟枃浠跺瓨鍌ㄨ矾寰�
+    private static String ZIPUploadPath2SingleFile = Global.getProfile() + "\\" + zipfile2 + "\\img\\";
 
     @Autowired
     private ProjectDataMapper projectDataMapper;
@@ -130,12 +136,22 @@
         return projectDataMapper.deleteProjectDataById(id);
     }
 
+
+
     @Override
-    public AjaxResult uploadZIP(MultipartFile file, HttpServletRequest request) {
+    public AjaxResult uploadZIP(MultipartFile file, HttpServletRequest request)  {
 
         String originalFilename = file.getOriginalFilename();
+
         //浼犲叆鐨勯捇瀛旂殑id
         String projectDataId = request.getParameter("projectDataId");
+
+        //涓婁紶鍗曟枃浠�
+        if(ObjectUtil.isNotEmpty(originalFilename) && !originalFilename.endsWith(".zip")){
+            uploadSingleFile(file,projectDataId);
+            return AjaxResult.success("涓婁紶鎴愬姛");
+        }
+        //涓婁紶ZIP鏂囦欢
 
         //鑾峰彇鍚庣紑.zip  淇濆瓨鐨勬枃浠跺悕
         String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
@@ -161,19 +177,46 @@
         moveFile(moveDir);
 
         //鏇存柊鏁版嵁搴�
-        updateFilePath(projectDataId, ZIPUploadPath2 + UID +"\\" + originalFilename.replace(substring, "") );
-
-        ProjectData projectData = new ProjectData();
-
-        //鏇存柊  projectData  url
-        String dataUrl = zipfile + "/" + UID +".zip";
-        projectData.setDataUrl(dataUrl);
-        projectData.setId(projectDataId);
-        projectDataMapper.updateProjectData(projectData);
+        updateFilePath(projectDataId, ZIPUploadPath2 + UID );
 
         FileUtil.del(new File(ZIPUploadPath + UID));
 
         return AjaxResult.success("涓婁紶鎴愬姛");
+    }
+
+    //涓婁紶鍗曟枃浠�
+    private void uploadSingleFile(MultipartFile file,String projectDataId) {
+
+        ProjectData projectData = projectDataMapper.selectProjectDataById(projectDataId);
+        String projectId= projectData.getProjectId();
+
+        String originalFilename= file.getOriginalFilename();
+        //鑾峰彇鍚庣紑  淇濆瓨鐨勬枃浠跺悕
+        String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
+        String UID = IdGenerate.nextId();
+        String dFileName = UID + substring;
+
+        String filepath = ZIPUploadPath2SingleFile + dFileName;
+
+        File destFile = new File(filepath);
+
+        try{
+            file.transferTo(destFile);
+        }catch (Exception e){
+            throw new BusinessException("淇濆瓨澶辫触锛�",e);
+        }
+
+        String url = filepath.replace(Global.getProfile(),"").replace("\\","/");
+
+        HoleMedia media = new HoleMedia();
+        media.setIds(IdGenerate.nextId());
+        media.setRecordId(projectDataId);
+        media.setProjectId(projectId);
+        media.setName(originalFilename);
+        media.setInternetPath(url);
+        media.setCreateTime(DateUtils.getNowDate());
+        mediaMapper.insertHoleMedia(media);
+
     }
 
     //绉诲姩 鏂囦欢
@@ -189,17 +232,14 @@
 
         ProjectData projectData = projectDataMapper.selectProjectDataById(projectDataId);
         String projectId= projectData.getProjectId();
-
         File fileDir = new File(dirpath);
+        List<File> files =   FileUtil.loopFiles(fileDir);
 
-        if (fileDir.isDirectory()) {
-            File[] files = fileDir.listFiles();
-            int len = files.length;
-            for (int i = 0; i < len; i++) {
-                String filename = files[i].getName();
-                String filepath = files[i].getPath();
+        if(ObjectUtil.isNotEmpty(files)){
+            for (File file : files){
+                String filename = file.getName();
+                String filepath = file.getPath();
                 String url = filepath.replace(Global.getProfile(),"").replace("\\","/");
-
                 HoleMedia media = new HoleMedia();
                 media.setIds(IdGenerate.nextId());
                 media.setRecordId(projectDataId);
@@ -209,7 +249,7 @@
                 media.setCreateTime(DateUtils.getNowDate());
                 mediaMapper.insertHoleMedia(media);
             }
-        }
 
+        }
     }
 }
diff --git a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/upload.html b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/upload.html
index b02bb26..3f39655 100644
--- a/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/upload.html
+++ b/javaweb-plus/javaweb-cms/src/main/resources/templates/geo/projectData/upload.html
@@ -13,7 +13,6 @@
                 <form id="formId"  enctype="multipart/form-data">
                     <div class="select-list">
                         <ul>
-
                              <li>
                                 <p>涓婁紶鏂囦欢锛�</p>
                                <input type="file" id="file" name="file"/>       
@@ -43,7 +42,7 @@
     
     function upload(){
     	var file = $('#file').val();
-		if (file == '' || (!$.common.endWith(file, '.zip'))){
+		if (file == ''|| file ==null){
 			$.modal.msgWarning("璇烽�夋嫨寰呬笂浼犵殑鏂囦欢");
 			return false;
 		}

--
Gitblit v1.9.1