diff --git a/server/src/main/java/cn/keking/web/controller/FileController.java b/server/src/main/java/cn/keking/web/controller/FileController.java index cebc2fde..300aa1dc 100644 --- a/server/src/main/java/cn/keking/web/controller/FileController.java +++ b/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();