From e05f80abb1e6d4bdb520002936e2d14434b469f1 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 27 七月 2023 14:44:57 +0800
Subject: [PATCH] 修改上传文件的类型检测功能,屏蔽部分有效的文件

---
 src/main/java/com/lf/server/entity/all/StaticData.java         |   13 +++++++++----
 src/main/java/com/lf/server/service/data/UploadService.java    |    3 +--
 src/main/java/com/lf/server/service/all/BaseUploadService.java |   28 +++++++++++++++++++---------
 3 files changed, 29 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/lf/server/entity/all/StaticData.java b/src/main/java/com/lf/server/entity/all/StaticData.java
index 06e70b8..206cf99 100644
--- a/src/main/java/com/lf/server/entity/all/StaticData.java
+++ b/src/main/java/com/lf/server/entity/all/StaticData.java
@@ -89,6 +89,11 @@
     public final static String COMMA = ",";
 
     /**
+     * 娉㈡氮鍙�
+     */
+    public final static String TILDE = "~";
+
+    /**
      * 鍗曞紩鍙�
      */
     public final static String SINGLE_QUOTES = "'";
@@ -112,7 +117,7 @@
 
     public final static String SHP = ".shp";
 
-    public final static String _GDB = "gdb";
+    public final static String NGDB = "gdb";
 
     public final static String GDB = ".gdb";
 
@@ -227,12 +232,12 @@
     /**
      * TIF鏂囦欢鎵╁睍鍚�
      */
-    public final static List<String> TIF_EXT = new ArrayList<>(Arrays.asList(".prj", ".tfw", ".tif.ovr", ".tif.aux.xml", ".tif.enp", ".tif.xml"));
+    public final static List<String> TIF_EXT = new ArrayList<>(Arrays.asList(".prj", ".tfw", ".aux", ".tif.ovr", ".tif.aux.xml", ".tif.xml"));
 
     /**
      * TIFF鏂囦欢鎵╁睍鍚�
      */
-    public final static List<String> TIFF_EXT = new ArrayList<>(Arrays.asList(".prj", ".tfw", ".tiff.ovr", ".tiff.aux.xml", ".tiff.enp", ".tiff.xml"));
+    public final static List<String> TIFF_EXT = new ArrayList<>(Arrays.asList(".prj", ".tfw", ".aux", ".tiff.ovr", ".tiff.aux.xml", ".tiff.xml"));
 
     /**
      * SHP鏂囦欢鎵╁睍鍚�
@@ -242,7 +247,7 @@
     /**
      * Mapper鎺掗櫎鎵╁睍鍚�
      */
-    public final static List<String> MAPPER_EXCLUDE_EXT = new ArrayList<>(Arrays.asList(".img.aux.xml", ".img.xml", ".tif.aux.xml", ".tif.xml", ".tiff.aux.xml", ".tiff.xml", ".shp.xml"));
+    public final static List<String> MAPPER_EXCLUDE_EXT = new ArrayList<>(Arrays.asList(".jpg.aux.xml", ".jpg.xml", ".img.aux.xml", ".img.xml", ".tif.aux.xml", ".tif.xml", ".tiff.aux.xml", ".tiff.xml", ".shp.xml"));
 
     /**
      * 鎵�鏈夋枃浠舵墿灞曞悕
diff --git a/src/main/java/com/lf/server/service/all/BaseUploadService.java b/src/main/java/com/lf/server/service/all/BaseUploadService.java
index 2bb8137..ce2ea15 100644
--- a/src/main/java/com/lf/server/service/all/BaseUploadService.java
+++ b/src/main/java/com/lf/server/service/all/BaseUploadService.java
@@ -145,7 +145,7 @@
         for (File f : files) {
             String fileName = FileHelper.getFileName(f.getPath());
             String extName = FileHelper.getExtension(fileName);
-            if (!isExtValid(extName)) {
+            if (!isFileValid(f.getName())) {
                 continue;
             }
 
@@ -252,8 +252,7 @@
     private void getFilesByPath(List<File> list, String path) {
         File file = new File(path);
         if (!file.isDirectory()) {
-            String extName = FileHelper.getExtension(file);
-            if (isExtValid(extName)) {
+            if (isFileValid(file.getName())) {
                 list.add(file);
             }
             return;
@@ -272,8 +271,7 @@
             if (f.isDirectory()) {
                 getFilesByPath(list, f.getPath());
             } else {
-                String extName = FileHelper.getExtension(f);
-                if (isExtValid(extName)) {
+                if (isFileValid(f.getName())) {
                     list.add(f);
                 }
             }
@@ -281,10 +279,22 @@
     }
 
     /**
-     * 鎵╁睍鏄惁鏈夋晥
+     * 鏂囦欢鏄�/鍚︽湁鏁�
      */
-    private boolean isExtValid(String extName) {
-        return StaticData.ALL_EXTENSION.contains(extName) && !StaticData.MAPPER_EXCLUDE_EXT.contains(extName);
+    private boolean isFileValid(String fileName) {
+        String extName = FileHelper.getExtension(fileName);
+        if (fileName.startsWith(StaticData.TILDE) || !StaticData.ALL_EXTENSION.contains(extName)) {
+            return false;
+        }
+
+        fileName = fileName.toLowerCase();
+        for (String ext : StaticData.MAPPER_EXCLUDE_EXT) {
+            if (fileName.contains(ext)) {
+                return false;
+            }
+        }
+
+        return true;
     }
 
     /**
@@ -302,7 +312,7 @@
 
             String fileName = FileHelper.getFileName(f.getPath());
             String extName = isOsgb ? StaticData.OSGB : FileHelper.getExtension(fileName);
-            if (!isExtValid(extName) || fileName.startsWith("~")) {
+            if (!isFileValid(f.getName())) {
                 continue;
             }
 
diff --git a/src/main/java/com/lf/server/service/data/UploadService.java b/src/main/java/com/lf/server/service/data/UploadService.java
index 6ceedc6..92f9304 100644
--- a/src/main/java/com/lf/server/service/data/UploadService.java
+++ b/src/main/java/com/lf/server/service/data/UploadService.java
@@ -19,7 +19,6 @@
 import java.io.File;
 import java.sql.Timestamp;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -492,7 +491,7 @@
             }
 
             MetaEntity me = createMeta(mf, metaId);
-            if (StaticData._GDB.equals(me.getType())) {
+            if (StaticData.NGDB.equals(me.getType())) {
                 if (guids.contains(me.getGuid())) {
                     me.setMetaid(-1);
                 } else {

--
Gitblit v1.9.3