diff --git a/web-api/src/main/java/com/jeesite/modules/app/utils/MyFileUtils.java b/web-api/src/main/java/com/jeesite/modules/app/utils/MyFileUtils.java index 1d025997..889a17de 100644 --- a/web-api/src/main/java/com/jeesite/modules/app/utils/MyFileUtils.java +++ b/web-api/src/main/java/com/jeesite/modules/app/utils/MyFileUtils.java @@ -2,6 +2,7 @@ package com.jeesite.modules.app.utils; import java.nio.file.*; import java.text.DecimalFormat; +import java.util.Objects; public class MyFileUtils { @@ -47,6 +48,38 @@ public class MyFileUtils { } + public static String getFileName(String fileName){ + if (Objects.isNull(fileName) || fileName.trim().isEmpty()) { + return ""; + } + String pureFileName = fileName; + int lastSeparatorIndex = fileName.lastIndexOf(System.getProperty("file.separator")); + if (lastSeparatorIndex != -1) { + pureFileName = fileName.substring(lastSeparatorIndex + 1); + } + int lastDotIndex = pureFileName.lastIndexOf('.'); + if (lastDotIndex <= 0) { + return pureFileName; + } + return pureFileName.substring(0, lastDotIndex); + } + + public static String getFileName(String fileName,String ext){ + String baseName = Objects.isNull(fileName) ? "" : fileName.trim(); + if (Objects.isNull(ext) || ext.trim().isEmpty()) { + return baseName; + } + String standardExt = ext.trim(); + if (standardExt.startsWith(".")) { + standardExt = standardExt.substring(1); + } + if (standardExt.isEmpty()) { + return baseName; + } + return baseName + "." + standardExt; + } + + public static String getIcon(String ext) { switch (ext) { case "doc", "docx": diff --git a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizMyfiles.java b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizMyfiles.java index 5175185e..f9fe08c0 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/entity/BizMyfiles.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/entity/BizMyfiles.java @@ -49,7 +49,12 @@ import java.io.Serial; @Column(name = "is_delete", attrName = "isDelete", label = "是否删除", isUpdateForce = true), @Column(name = "update_time", attrName = "updateTime", label = "更新时间", isQuery = false, isUpdateForce = true), @Column(name = "svg_icon", attrName = "svgIcon", label = "文件夹标识"), - +}, joinTable = { + @JoinTable(type = Type.LEFT_JOIN, entity = BizFolders.class, attrName = "this", alias = "b", + on = "a.folder_id = b.folder_id", + columns = { + @Column(name = "folder_name", attrName = "folderName", label = "文件夹名称"), + }), }, orderBy = "a.create_time DESC" ) @Data @@ -75,6 +80,8 @@ public class BizMyfiles extends DataEntity implements Serializable { private Date updateTime; // 更新时间 private String svgIcon; //文件图标 + private String folderName; + @ExcelFields({ @ExcelField(title = "记录时间", attrName = "createTime", align = Align.CENTER, sort = 10, dataFormat = "yyyy-MM-dd hh:mm"), @ExcelField(title = "文件标识", attrName = "id", align = Align.CENTER, sort = 20), diff --git a/web-api/src/main/java/com/jeesite/modules/biz/web/BizMyfilesController.java b/web-api/src/main/java/com/jeesite/modules/biz/web/BizMyfilesController.java index 5cddf5b6..56b3d932 100644 --- a/web-api/src/main/java/com/jeesite/modules/biz/web/BizMyfilesController.java +++ b/web-api/src/main/java/com/jeesite/modules/biz/web/BizMyfilesController.java @@ -8,6 +8,7 @@ import com.jeesite.modules.app.utils.FileDownloadUtils; import com.jeesite.modules.app.utils.MyFileUtils; import com.jeesite.modules.app.utils.vId; import com.jeesite.modules.biz.entity.BizMailAttachments; +import com.jeesite.modules.file.entity.FileEntity; import com.jeesite.modules.file.entity.FileUpload; import com.jeesite.modules.file.utils.FileUploadUtils; import jakarta.servlet.http.HttpServletRequest; @@ -99,7 +100,7 @@ public class BizMyfilesController extends BaseController { for (FileUpload fileUpload : fileList) { bizMyfiles.setCreateTime(new Date()); bizMyfiles.setId(vId.getCid()); - bizMyfiles.setFileName(fileUpload.getFileName()); + bizMyfiles.setFileName(MyFileUtils.getFileName(fileUpload.getFileName())); bizMyfiles.setFilePath(FILE_PATH + fileUpload.getFileUrl()); bizMyfiles.setFileHash(fileUpload.getFileEntity().getFileMd5()); bizMyfiles.setFileSize(MyFileUtils.formatFileSize(fileUpload.getFileEntity().getFileSize(), 2)); @@ -107,7 +108,6 @@ public class BizMyfilesController extends BaseController { bizMyfiles.setMimeType(fileUpload.getFileEntity().getFileContentType()); bizMyfiles.setSvgIcon(MyFileUtils.getIcon(fileUpload.getFileEntity().getFileExtension())); bizMyfilesService.save(bizMyfiles); - FileUploadUtils.deleteFileUpload(fileUpload.getId()); } return renderResult(Global.TRUE, text("保存文件信息成功!")); } @@ -115,9 +115,7 @@ public class BizMyfilesController extends BaseController { @PostMapping(value = "edit") @ResponseBody public String edit(@Validated BizMyfiles bizMyfiles) { - BizMyfiles myfiles = bizMyfilesService.get(bizMyfiles.getId()); - myfiles.setFileName(bizMyfiles.getFileName() + "." + myfiles.getFileExt()); - bizMyfilesService.update(myfiles); + bizMyfilesService.update(bizMyfiles); return renderResult(Global.TRUE, text("修改文件名称成功!")); } @@ -181,7 +179,7 @@ public class BizMyfilesController extends BaseController { public void downloadFile(BizMyfiles bizMyfiles, HttpServletResponse response) { try { BizMyfiles myfiles = bizMyfilesService.get(bizMyfiles); - FileDownloadUtils.downloadFile(myfiles.getFilePath(), myfiles.getFileName(), response); + FileDownloadUtils.downloadFile(myfiles.getFilePath(), MyFileUtils.getFileName(myfiles.getFileName(), myfiles.getFileExt()), response); } catch (Exception e) { System.out.print(e.getMessage()); } diff --git a/web-vue/packages/core/layouts/views/desktop/workbench/components/myfiles/index.vue b/web-vue/packages/core/layouts/views/desktop/workbench/components/myfiles/index.vue index 37eb4f39..4ecf8afb 100644 --- a/web-vue/packages/core/layouts/views/desktop/workbench/components/myfiles/index.vue +++ b/web-vue/packages/core/layouts/views/desktop/workbench/components/myfiles/index.vue @@ -343,7 +343,6 @@ 上传文件 -
-