Przeglądaj źródła

添加 上传前文件名校验

wuweihao 5 lat temu
rodzic
commit
c2d333e44f

+ 20 - 12
src/main/java/com/fd/controller/FdModelController.java

@@ -24,6 +24,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.PostConstruct;
 import java.io.File;
 import java.util.Date;
+import java.util.List;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
@@ -45,9 +46,6 @@ public class FdModelController {
     @Value("${output.file.path.model}")
     private String OUTPUT_FILE_PATH;
 
-//    @Autowired
-//    private FileServer fileServer;
-
     @Autowired
     private CmdServer cmdServer;
 
@@ -66,10 +64,7 @@ public class FdModelController {
      */
     @PostConstruct
     private void init() {
-
-
         new Thread(new modelSliceConsumerThread(modelQueue)).start();
-
     }
 
 
@@ -124,6 +119,23 @@ public class FdModelController {
 
 
 
+    @ApiOperation("上传数据,校验文件名")
+    @GetMapping("check/{fileName}/")
+    private R checkFileName(@RequestParam("fileName") String fileName) {
+        log.info("run checkFileName");
+
+        // 文件是否包含中文字符
+        if (RegexUtils.regexChinese(fileName)) {
+            return new R(51005, MsgCode.E51005);
+        }
+
+        List<FileEntity> list = modelServer.findByFileName(fileName);
+        if (list.size() > 0) {
+            return new R(51006, MsgCode.E51006);
+        }
+        return new R(200, MsgCode.SUCCESS);
+    }
+
     @ApiOperation("上传3D模型数据,只能上传zip文件")
     @PostMapping(value = "upload", consumes = {"multipart/form-data"})
     private R upload(@RequestParam("file") MultipartFile file) {
@@ -142,14 +154,10 @@ public class FdModelController {
             return new R(50007, MsgCode.E50007);
         }
 
-        FileEntity entity = modelServer.findByFileName(fileName);
-        if (entity != null) {
+        List<FileEntity> list = modelServer.findByFileName(fileName);
+        if (list.size() > 0) {
             return new R(51006, MsgCode.E51006);
         }
-
-
-
-
         return modelServer.uploadBigFile(file);
     }
 

+ 18 - 2
src/main/java/com/fd/controller/RasterController.java

@@ -26,6 +26,7 @@ import javax.annotation.PostConstruct;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
@@ -76,7 +77,22 @@ public class RasterController {
 
     }
 
+    @ApiOperation("上传数据,校验文件名")
+    @GetMapping("check/{fileName}/")
+    private R checkFileName(@RequestParam("fileName") String fileName) {
+        log.info("run checkFileName");
 
+        // 文件是否包含中文字符
+        if (RegexUtils.regexChinese(fileName)) {
+            return new R(51005, MsgCode.E51005);
+        }
+
+        List<FileEntity> list = rasterServer.findByFileName(fileName);
+        if (list.size() > 0) {
+            return new R(51006, MsgCode.E51006);
+        }
+        return new R(200, MsgCode.SUCCESS);
+    }
 
     @ApiOperation("上传栅格数据,只能上传tif文件")
     @PostMapping(value = "upload", consumes = { "multipart/form-data" })
@@ -96,8 +112,8 @@ public class RasterController {
             return new R(50008,MsgCode.E50008);
         }
 
-        FileEntity entity = rasterServer.findByFileName(fileName);
-        if (entity != null) {
+        List<FileEntity> list = rasterServer.findByFileName(fileName);
+        if (list.size() > 0) {
             return new R(51006, MsgCode.E51006);
         }
 

+ 3 - 1
src/main/java/com/fd/repository/FileRepository.java

@@ -22,7 +22,9 @@ public interface FileRepository extends JpaRepository<FileEntity, Long>, JpaSpec
     @Query(value = "select r from FileEntity r where r.type=?1 or r.type =?2")
     Page<FileEntity> findByType(String type, String type1, Pageable pageable);
 
-    FileEntity findByFileName(String fileName);
+    List<FileEntity> findByFileName(String fileName);
+
+    List<FileEntity> findByFileNameAndType(String fileName, String type);
 
     List<FileEntity> findByDirectory(String directory);
 }

+ 3 - 1
src/main/java/com/fd/server/ModelServer.java

@@ -6,6 +6,8 @@ import com.fd.entity.OutputFileEntity;
 import com.fd.util.R;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.List;
+
 /**
  * Created by Owen on 2019/11/21 0021 15:29
  */
@@ -26,5 +28,5 @@ public interface ModelServer {
 
     R deleteById(Long fileId);
 
-    FileEntity findByFileName(String fileName);
+    List<FileEntity> findByFileName(String fileName);
 }

+ 3 - 1
src/main/java/com/fd/server/RasterServer.java

@@ -8,6 +8,8 @@ import com.fd.entity.OutputFileEntity;
 import com.fd.util.R;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.List;
+
 /**
  * Created by Owen on 2019/11/21 0021 15:29
  */
@@ -26,5 +28,5 @@ public interface RasterServer {
 
     R deleteById(Long fileId);
 
-    FileEntity findByFileName(String fileName);
+    List<FileEntity> findByFileName(String fileName);
 }

+ 3 - 2
src/main/java/com/fd/server/impl/ModelServerImpl.java

@@ -26,6 +26,7 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.File;
 import java.io.IOException;
 import java.util.Date;
+import java.util.List;
 import java.util.Optional;
 
 
@@ -101,9 +102,9 @@ public class ModelServerImpl implements ModelServer  {
     }
 
     @Override
-    public FileEntity findByFileName(String fileName) {
+    public List<FileEntity> findByFileName(String fileName) {
 
-        return fileRepository.findByFileName(fileName);
+        return fileRepository.findByFileNameAndType(fileName, TypeCode.FILE_TYPE_MODEL);
     }
 
 

+ 3 - 2
src/main/java/com/fd/server/impl/RasterServerImpl.java

@@ -29,6 +29,7 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.File;
 import java.io.IOException;
 import java.util.Date;
+import java.util.List;
 import java.util.Optional;
 
 
@@ -224,9 +225,9 @@ public class RasterServerImpl implements RasterServer {
 
 
     @Override
-    public FileEntity findByFileName(String fileName) {
+    public List<FileEntity> findByFileName(String fileName) {
 
-        return fileRepository.findByFileName(fileName);
+        return fileRepository.findByFileNameAndType(fileName, TypeCode.FILE_TYPE_RASTER);
     }
 
     @Override