瀏覽代碼

新增 支持压缩包密码 修复LINUX下中文乱码 解压支持文件目录
新增 支持压缩包密码 修复LINUX下中文乱码 解压支持文件目录

Signed-off-by: 高雄 <admin@cxcp.com>

高雄 2 年之前
父節點
當前提交
a44e5ba518
共有 1 個文件被更改,包括 19 次插入0 次删除
  1. 19 0
      server/src/main/java/cn/keking/web/controller/FileController.java

+ 19 - 0
server/src/main/java/cn/keking/web/controller/FileController.java

@@ -4,6 +4,7 @@ import cn.keking.config.ConfigConstants;
 import cn.keking.model.ReturnResponse;
 import cn.keking.utils.KkFileUtils;
 import cn.keking.utils.WebUtils;
+import cn.keking.service.CompressFileReader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.ObjectUtils;
@@ -162,6 +163,24 @@ public class FileController {
         return ReturnResponse.success(fileName);
     }
 
+    @GetMapping("/directory")
+    public Object directory(String urls) {
+        if (ObjectUtils.isEmpty(urls)) {
+            return ReturnResponse.failure("地址不合法!");
+        }
+        String fileUrl;
+        try {
+            fileUrl = WebUtils.decodeUrl(urls);
+            if (fileUrl.toLowerCase().startsWith("file:") || fileUrl.toLowerCase().startsWith("file%3")) {
+                return ReturnResponse.failure("地址不合法!");
+            }
+        } catch (Exception ex) {
+            String errorMsg = String.format(BASE64_DECODE_ERROR_MSG, "url");
+            return errorMsg;
+        }
+        return CompressFileReader.getTree(fileUrl);
+    }
+
     private boolean existsFile(String fileName) {
         File file = new File(fileDir + demoPath + fileName);
         return file.exists();