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