From ab849f796bdc17236a95ea5fe5c166fb8f24a75c Mon Sep 17 00:00:00 2001
From: sws <15810472099@163.com>
Date: 星期六, 26 十一月 2022 16:12:02 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/all/BaseUploadService.java |  201 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 201 insertions(+), 0 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
new file mode 100644
index 0000000..6edd901
--- /dev/null
+++ b/src/main/java/com/lf/server/service/all/BaseUploadService.java
@@ -0,0 +1,201 @@
+package com.lf.server.service.all;
+
+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 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;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.sql.Timestamp;
+import java.util.*;
+
+/**
+ * 鐖朵笂浼犳湇鍔�
+ * @author WWW
+ */
+@Service
+public class BaseUploadService {
+    @Autowired
+    public PathHelper pathHelper;
+
+    public final Log log = LogFactory.getLog(getClass());
+
+    /**
+     * 鏌ヨ鏂囦欢
+     */
+    public List<MetaFileEntity> selectFiles(String subPath, List<String> extList) throws IOException {
+        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<MetaFileEntity>();
+        for (File f : files) {
+            String fileName = FileHelper.getFileName(f.getPath());
+            if (null != extList) {
+                String extName = FileHelper.getExtension(fileName);
+                if (!extList.contains(extName)) {
+                    continue;
+                }
+            }
+
+            double sizes = FileHelper.sizeToMb(f.length());
+            String filePath = subPath + File.separator + fileName;
+
+            MetaFileEntity mf = new MetaFileEntity();
+            mf.setName(fileName);
+            mf.setSizes(sizes);
+            mf.setPath(filePath);
+            mf.setGuid(FileHelper.getFileMd5(f.getPath()));
+
+            list.add(mf);
+        }
+
+        return list;
+    }
+
+    /**
+     * 鏌ヨ鐩綍
+     */
+    public String selectPath() {
+        return pathHelper.getTempPathName();
+    }
+
+    /**
+     * 涓婁紶鏂囦欢
+     */
+    public <T> List<MetaFileEntity> uploadData(T t, String path, HttpServletRequest req, HttpServletResponse res) throws Exception {
+        StandardMultipartHttpServletRequest request = (StandardMultipartHttpServletRequest) req;
+        req.setCharacterEncoding("utf-8");
+        res.setContentType("application/json;charset=utf-8");
+
+        if (t != null) {
+            setEntity(t, request);
+        }
+        List<MetaFileEntity> list = getFiles(path, request);
+
+        return list;
+    }
+
+    /**
+     * 璁剧疆瀹炰綋绫�
+     */
+    private <T> void setEntity(T t, StandardMultipartHttpServletRequest req) {
+        Enumeration<String> enumeration = req.getParameterNames();
+        while (enumeration.hasMoreElements()) {
+            String key = enumeration.nextElement();
+
+            try {
+                Field field = t.getClass().getDeclaredField(key);
+                field.setAccessible(true);
+                String value = req.getParameter(key);
+
+                switch (field.getType().toString()) {
+                    case "double":
+                        field.set(t, Double.valueOf(value));
+                        break;
+                    case "long":
+                        field.set(t, Long.valueOf(value));
+                        break;
+                    case "int":
+                        field.set(t, Integer.valueOf(value));
+                        break;
+                    case "class java.sql.Timestamp":
+                        field.set(t, Timestamp.valueOf(value));
+                        break;
+                    //case "class java.lang.String":
+                    default:
+                        field.set(t, value);
+                        break;
+                }
+            } catch (Exception ex) {
+                log.error(ex.getMessage(), ex);
+            }
+        }
+    }
+
+    /**
+     * 鑾峰彇鏂囦欢
+     */
+    public List<MetaFileEntity> getFiles(String subPath, StandardMultipartHttpServletRequest req) throws Exception {
+        List<MetaFileEntity> list = new ArrayList<MetaFileEntity>();
+
+        String path = pathHelper.getTempPath(subPath);
+        Iterator<String> iterator = req.getFileNames();
+        while (iterator.hasNext()) {
+            MultipartFile file = req.getFile(iterator.next());
+            if (StringHelper.isEmpty(file.getOriginalFilename())) {
+                continue;
+            }
+
+            double sizes = FileHelper.sizeToMb(file.getSize());
+            MetaFileEntity mf = new MetaFileEntity();
+            mf.setName(file.getOriginalFilename());
+            mf.setSizes(sizes);
+            mf.setPath(path + File.separator + mf.getName());
+
+            file.transferTo(new File(mf.getPath()));
+            mf.setGuid(FileHelper.getFileMd5(mf.getPath()));
+
+            list.add(mf);
+        }
+
+        return list;
+    }
+
+    /**
+     * 鍒犻櫎鏂囦欢
+     */
+    public Integer deleteFiles(List<MetaFileEntity> list) {
+        String root = pathHelper.getConfig().getTempPath();
+
+        int count = 0;
+        for (MetaFileEntity entity : list) {
+            if (!StringHelper.isEmpty(entity.getPath())) {
+                String file = root + File.separator + entity.getPath();
+
+                File f = new File(file);
+                if (f.exists()) {
+                    f.delete();
+                    count++;
+                }
+            }
+        }
+
+        return count;
+    }
+
+    /**
+     * 鑾峰彇鍙傛暟
+     * Enumeration<String> headers = req.getHeaderNames();
+     * Enumeration<String> attributes = req.getAttributeNames();
+     */
+    public Map<String, String> getParams(StandardMultipartHttpServletRequest req) {
+        Map<String, String> map = new HashMap<String, String>(3);
+
+        Enumeration<String> enumeration = req.getParameterNames();
+        while (enumeration.hasMoreElements()) {
+            String key = enumeration.nextElement();
+            String value = req.getParameter(key);
+            map.put(key, value);
+        }
+
+        return map;
+    }
+}

--
Gitblit v1.9.3