From 8f2042ce63ceb46b8c14e7f6e72bfe80492e64d1 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 27 二月 2024 16:46:06 +0800 Subject: [PATCH] 根据路径创建目录 --- src/main/java/com/lf/server/service/all/BaseUploadService.java | 39 ++++++++++++++++++++++++++++++++++++--- 1 files changed, 36 insertions(+), 3 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 02f6dd3..eb21b50 100644 --- a/src/main/java/com/lf/server/service/all/BaseUploadService.java +++ b/src/main/java/com/lf/server/service/all/BaseUploadService.java @@ -7,6 +7,7 @@ import com.lf.server.entity.sys.UserEntity; import com.lf.server.helper.*; import com.lf.server.service.data.DirService; +import com.lf.server.service.sys.TokenService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -14,6 +15,7 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; @@ -27,11 +29,14 @@ */ @Service public class BaseUploadService { - @Autowired + @Resource protected DirService dirService; - @Autowired + @Resource protected PathHelper pathHelper; + + @Resource + protected TokenService tokenService; public final Log log = LogFactory.getLog(getClass()); @@ -560,7 +565,7 @@ if (StringHelper.isEmpty(code)) { DirEntity baseDir = findBaseDirByPath(dirs, filePath); if (null != baseDir) { - createDirByPath(baseDir, mfe.getPath()); + createDirByPath(baseDir, mfe.getPath().replace("/", "\\")); dirs = dirService.selectRecursiveById(dir.getId()); code = findDirByPath(dirs, filePath, fileName); } @@ -603,7 +608,35 @@ * 鏍规嵁璺緞鍒涘缓鐩綍 */ private void createDirByPath(DirEntity baseDir, String filePath) { + int start = filePath.toLowerCase().indexOf(baseDir.getFullName().toLowerCase() + "\\") + baseDir.getFullName().length() + 1; + int end = filePath.lastIndexOf("\\"); + if (end <= start) { + return; + } + if (0 == baseDir.getLevel()) { + baseDir.setLevel(2); + } + HttpServletRequest req = WebHelper.getRequest(); + UserEntity ue = tokenService.getCurrentUser(req); + + String[] strs = filePath.substring(start, end).split("\\\\"); + for (String str : strs) { + DirEntity entity = dirService.selectDirByName(str, baseDir.getId()); + if (null == entity) { + entity = new DirEntity(); + entity.setPid(baseDir.getId()); + entity.setName(str); + entity.setOrderNum(dirService.selectMaxOrderNum()); + entity.setLevel(baseDir.getLevel() + 1); + entity.setCreateUser(ue.getId()); + + dirService.insert(entity); + baseDir = dirService.selectDir(entity.getId()); + } else { + baseDir = entity; + } + } } /** -- Gitblit v1.9.3