From 57c63c7af9bcff4d38da1bf247ec0eac21887c48 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 09 一月 2023 16:11:13 +0800 Subject: [PATCH] 5 --- src/main/java/com/lf/server/service/all/BaseUploadService.java | 215 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 199 insertions(+), 16 deletions(-) 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 76966f8..f0a614d 100644 --- a/src/main/java/com/lf/server/service/all/BaseUploadService.java +++ b/src/main/java/com/lf/server/service/all/BaseUploadService.java @@ -1,12 +1,12 @@ package com.lf.server.service.all; +import com.lf.server.entity.data.DirEntity; import com.lf.server.entity.data.MetaFileEntity; -import com.lf.server.helper.FileHelper; -import com.lf.server.helper.PathHelper; -import com.lf.server.helper.StringHelper; +import com.lf.server.helper.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest; @@ -21,11 +21,31 @@ * 鐖朵笂浼犳湇鍔� * @author WWW */ +@Service public class BaseUploadService { - @Autowired - PathHelper pathHelper; + private final static String XLS = ".xls"; - private final Log log = LogFactory.getLog(getClass()); + private final static String MDB = ".mdb"; + + private final static String GDB = ".gdb"; + + private final static String SHP_ZIP = ".shp.zip"; + + private final static String GDB_ZIP = ".gdb.zip"; + + private final static String ZIP = ".zip"; + + @Autowired + public PathHelper pathHelper; + + public final Log log = LogFactory.getLog(getClass()); + + /** + * 鏌ヨ鐩綍 + */ + public String selectPath() { + return pathHelper.getTempPathName(); + } /** * 涓婁紶鏂囦欢 @@ -38,9 +58,8 @@ if (t != null) { setEntity(t, request); } - List<MetaFileEntity> list = getFiles(path, request); - return list; + return getFiles(path, request); } /** @@ -83,20 +102,21 @@ /** * 鑾峰彇鏂囦欢 */ - private List<MetaFileEntity> getFiles(String subPath, StandardMultipartHttpServletRequest req) throws Exception { - List<MetaFileEntity> list = new ArrayList<MetaFileEntity>(); + public List<MetaFileEntity> getFiles(String subPath, StandardMultipartHttpServletRequest req) throws Exception { + List<MetaFileEntity> list = new ArrayList<>(); String path = pathHelper.getTempPath(subPath); Iterator<String> iterator = req.getFileNames(); while (iterator.hasNext()) { MultipartFile file = req.getFile(iterator.next()); - if (StringHelper.isEmpty(file.getOriginalFilename())) { + if (null == file || StringHelper.isEmpty(file.getOriginalFilename())) { continue; } - double sizes = FileHelper.sizeToMb(file.getSize()); MetaFileEntity mf = new MetaFileEntity(); mf.setName(file.getOriginalFilename()); + + double sizes = FileHelper.sizeToMb(file.getSize()); mf.setSizes(sizes); mf.setPath(path + File.separator + mf.getName()); @@ -110,12 +130,39 @@ } /** - * 鑷悊瀹炰綋闆嗗悎 + * 鏌ヨ鏂囦欢 */ - public void dealEntities(List<MetaFileEntity> list) { - for (MetaFileEntity entity : list) { - entity.setPath(FileHelper.getRelativePath(entity.getPath())); + public List<MetaFileEntity> selectFiles(String subPath, List<String> extList) { + String root = pathHelper.getConfig().getTempPath() + File.separator + subPath; + + File file = new File(root); + if (!file.exists() && !file.isDirectory()) { + return null; } + File[] files = file.listFiles(); + if (null == files || files.length == 0) { + return null; + } + + List<MetaFileEntity> list = new ArrayList<>(); + for (File f : files) { + String fileName = FileHelper.getFileName(f.getPath()); + String extName = FileHelper.getExtension(fileName); + if (null != extList && !extList.contains(extName)) { + continue; + } + + MetaFileEntity mf = new MetaFileEntity(); + mf.setName(fileName); + mf.setExtName(extName); + mf.setSizes(FileHelper.sizeToMb(f.length())); + mf.setPath(subPath + File.separator + fileName); + // mf.setGuid(FileHelper.getFileMd5(f.getPath())) + + list.add(mf); + } + + return list; } /** @@ -141,6 +188,142 @@ } /** + * 鏌ヨ鏄犲皠 + */ + public List<MetaFileEntity> selectMappers(List<MetaFileEntity> metas, DirEntity dir, String epsgCode) { + List<MetaFileEntity> list = new ArrayList<>(); + for (MetaFileEntity meta : metas) { + // + } + + return list; + } + + /*private List<TabMapperEntity> getMappers(String zipPath, File[] files) { + String temp = pathHelper.getConfig().getTempPath(); + + List<TabMapperEntity> list = new ArrayList<>(); + for (File f : files) { + String fileName = FileHelper.getFileName(f.getPath()); + if (fileName.contains(XLS)) { + String path = f.getPath().replace(temp + File.separator, ""); + list.add(new TabMapperEntity(fileName, "xls", null, path)); + continue; + } + if (fileName.contains(MDB)) { + String path = f.getPath().replace(temp + File.separator, ""); + List<String> tabs = MdbHelper.getTabNames(f.getPath()); + for (String tab : tabs) { + list.add(new TabMapperEntity(fileName, "mdb", tab, path)); + } + continue; + } + if (fileName.contains(SHP_ZIP)) { + String subPath = zipPath + File.separator + f.getName().toLowerCase().replace(".zip", ""); + ZipHelper.unzip(f.getPath(), subPath); + getShpFiles(f.getName(), subPath, list); + continue; + } + if (fileName.contains(GDB_ZIP)) { + String subPath = zipPath + File.separator + f.getName().toLowerCase().replace(".zip", ""); + ZipHelper.unzip(f.getPath(), subPath); + getGdbFiles(f.getName(), subPath, list); + continue; + } + if (fileName.contains(ZIP)) { + // 鏆傛椂涓嶅疄鐜� + } + } + + return list; + } + + private void getShpFiles(String sourceName, String subPath, List<TabMapperEntity> list) { + List<String> files = new ArrayList<>(); + getShpFiles(subPath, files); + + String root = pathHelper.getConfig().getTempPath() + File.separator; + for (String file : files) { + String name = FileHelper.getFileName(file); + String path = file.replace(root, ""); + list.add(new TabMapperEntity(sourceName, "shp", name, path)); + } + } + + private void getShpFiles(String shpPath, List<String> list) { + File file = new File(shpPath); + + File[] files = file.listFiles(); + if (null == files || files.length == 0) { + return; + } + + for (File f : files) { + if (f.isDirectory()) { + getShpFiles(f.getPath(), list); + continue; + } + + if (f.getName().toLowerCase().endsWith(".shp")) { + list.add(f.getPath()); + } + } + } + + private void getGdbFiles(String sourceName, String subPath, List<TabMapperEntity> list) { + List<String> files = new ArrayList<>(); + getGdbFiles(subPath, files); + + String root = pathHelper.getConfig().getTempPath() + File.separator; + for (String file : files) { + String path = file.replace(root, ""); + List<String> tabs = GdbHelper.getTabNames(file); + for (String tab : tabs) { + list.add(new TabMapperEntity(sourceName, "gdb", tab, path)); + } + } + } + + private void getGdbFiles(String shpPath, List<String> list) { + File file = new File(shpPath); + + File[] files = file.listFiles(); + if (null == files || files.length == 0) { + return; + } + + for (File f : files) { + if (!f.isDirectory()) { + continue; + } + + if (isGdbFile(f)) { + list.add(f.getPath()); + continue; + } + + getGdbFiles(f.getPath(), list); + } + }*/ + + private boolean isGdbFile(File f) { + if (f.getName().toLowerCase().endsWith(GDB)) { + File[] files = f.listFiles(); + if (null == files || files.length == 0) { + return false; + } + + for (File file : files) { + if ("gdb".equals(file.getName())) { + return true; + } + } + } + + return false; + } + + /** * 鑾峰彇鍙傛暟 * Enumeration<String> headers = req.getHeaderNames(); * Enumeration<String> attributes = req.getAttributeNames(); -- Gitblit v1.9.3