From fcdefa450cd270936c3e40738d8b170e7cadce61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=B2=BE=E5=8D=8E?= <842761733@qq.com> Date: Tue, 6 Jul 2021 09:09:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=8A=9F=E8=83=BD=E7=82=B9=EF=BC=9A?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=8F=AF=E9=80=9A=E8=BF=87=E9=85=8D=E7=BD=AE=E5=AE=9E?= =?UTF-8?q?=E6=97=B6=E5=BC=80=E5=90=AF=E6=88=96=E7=A6=81=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/main/config/application.properties | 2 ++ .../java/cn/keking/config/ConfigConstants.java | 14 ++++++++++++++ .../cn/keking/config/ConfigRefreshComponent.java | 3 +++ .../cn/keking/web/controller/FileController.java | 3 +++ .../cn/keking/web/filter/AttributeSetFilter.java | 2 +- .../cn/keking/web/filter/FilterConfiguration.java | 1 + server/src/main/resources/web/index.ftl | 15 ++++++++------- 7 files changed, 32 insertions(+), 8 deletions(-) diff --git a/server/src/main/config/application.properties b/server/src/main/config/application.properties index 5b1bb54f..fd79f6d5 100644 --- a/server/src/main/config/application.properties +++ b/server/src/main/config/application.properties @@ -67,6 +67,8 @@ office.preview.switch.disabled = ${KK_OFFICE_PREVIEW_SWITCH_DISABLED:false} #是否禁止下载转换生成的pdf文件 pdf.download.disable = ${KK_PDF_DOWNLOAD_DISABLE:true} +#是否禁用首页文件上传 +file.upload.disable = ${KK_FILE_UPLOAD_ENABLED:false} #预览源为FTP时 FTP用户名,可在ftp url后面加参数ftp.username=ftpuser指定,不指定默认用配置的 ftp.username = ${KK_FTP_USERNAME:ftpuser} diff --git a/server/src/main/java/cn/keking/config/ConfigConstants.java b/server/src/main/java/cn/keking/config/ConfigConstants.java index 67e9ce2e..3ebd818a 100644 --- a/server/src/main/java/cn/keking/config/ConfigConstants.java +++ b/server/src/main/java/cn/keking/config/ConfigConstants.java @@ -35,6 +35,7 @@ public class ConfigConstants { private static String fileDir = ConfigUtils.getHomePath() + File.separator + "file" + File.separator; private static CopyOnWriteArraySet trustHostSet; private static String pdfDownloadDisable; + private static Boolean fileUploadDisable; public static final String DEFAULT_CACHE_ENABLED = "true"; public static final String DEFAULT_TXT_TYPE = "txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd"; @@ -48,6 +49,7 @@ public class ConfigConstants { public static final String DEFAULT_FILE_DIR_VALUE = "default"; public static final String DEFAULT_TRUST_HOST = "default"; public static final String DEFAULT_PDF_DOWNLOAD_DISABLE = "true"; + public static final String DEFAULT_FILE_UPLOAD_DISABLE = "false"; public static Boolean isCacheEnabled() { @@ -250,4 +252,16 @@ public class ConfigConstants { ConfigConstants.officePreviewSwitchDisabled = officePreviewSwitchDisabled; } + public static Boolean getFileUploadDisable() { + return fileUploadDisable; + } + + @Value("${file.upload.disable:false}") + public static void setFileUploadDisable(Boolean fileUploadDisable) { + setFileUploadDisableValue(fileUploadDisable); + } + + public static void setFileUploadDisableValue(Boolean fileUploadDisable) { + ConfigConstants.fileUploadDisable = fileUploadDisable; + } } diff --git a/server/src/main/java/cn/keking/config/ConfigRefreshComponent.java b/server/src/main/java/cn/keking/config/ConfigRefreshComponent.java index 0b7ce120..7e53a052 100644 --- a/server/src/main/java/cn/keking/config/ConfigRefreshComponent.java +++ b/server/src/main/java/cn/keking/config/ConfigRefreshComponent.java @@ -48,6 +48,7 @@ public class ConfigRefreshComponent { String baseUrl; String trustHost; String pdfDownloadDisable; + boolean fileUploadDisable; while (true) { FileReader fileReader = new FileReader(configFilePath); BufferedReader bufferedReader = new BufferedReader(fileReader); @@ -66,6 +67,7 @@ public class ConfigRefreshComponent { baseUrl = properties.getProperty("base.url", ConfigConstants.DEFAULT_BASE_URL); trustHost = properties.getProperty("trust.host", ConfigConstants.DEFAULT_TRUST_HOST); pdfDownloadDisable = properties.getProperty("pdf.download.disable", ConfigConstants.DEFAULT_PDF_DOWNLOAD_DISABLE); + fileUploadDisable = Boolean.parseBoolean(properties.getProperty("file.upload.disable", ConfigConstants.DEFAULT_FILE_UPLOAD_DISABLE)); ConfigConstants.setCacheEnabledValueValue(cacheEnabled); ConfigConstants.setSimTextValue(textArray); ConfigConstants.setMediaValue(mediaArray); @@ -77,6 +79,7 @@ public class ConfigRefreshComponent { ConfigConstants.setTrustHostValue(trustHost); ConfigConstants.setOfficePreviewSwitchDisabledValue(officePreviewSwitchDisabled); ConfigConstants.setPdfDownloadDisableValue(pdfDownloadDisable); + ConfigConstants.setFileUploadDisableValue(fileUploadDisable); setWatermarkConfig(properties); bufferedReader.close(); fileReader.close(); 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 94b98c4a..7fce8449 100644 --- a/server/src/main/java/cn/keking/web/controller/FileController.java +++ b/server/src/main/java/cn/keking/web/controller/FileController.java @@ -35,6 +35,9 @@ public class FileController { @RequestMapping(value = "fileUpload", method = RequestMethod.POST) public String fileUpload(@RequestParam("file") MultipartFile file) throws JsonProcessingException { + if (ConfigConstants.getFileUploadDisable()) { + return new ObjectMapper().writeValueAsString(ReturnResponse.failure("文件传接口已禁用")); + } // 获取文件名 String fileName = file.getOriginalFilename(); //判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息 diff --git a/server/src/main/java/cn/keking/web/filter/AttributeSetFilter.java b/server/src/main/java/cn/keking/web/filter/AttributeSetFilter.java index 3cd95700..0411fba2 100644 --- a/server/src/main/java/cn/keking/web/filter/AttributeSetFilter.java +++ b/server/src/main/java/cn/keking/web/filter/AttributeSetFilter.java @@ -34,7 +34,7 @@ public class AttributeSetFilter implements Filter { request.setAttribute("pdfDownloadDisable", ConfigConstants.getPdfDownloadDisable()); request.setAttribute("fileKey", httpRequest.getParameter("fileKey")); request.setAttribute("switchDisabled", ConfigConstants.getOfficePreviewSwitchDisabled()); - + request.setAttribute("fileUploadDisable", ConfigConstants.getFileUploadDisable()); } /** diff --git a/server/src/main/java/cn/keking/web/filter/FilterConfiguration.java b/server/src/main/java/cn/keking/web/filter/FilterConfiguration.java index 7a7505bd..4e6ab288 100644 --- a/server/src/main/java/cn/keking/web/filter/FilterConfiguration.java +++ b/server/src/main/java/cn/keking/web/filter/FilterConfiguration.java @@ -53,6 +53,7 @@ public class FilterConfiguration { @Bean public FilterRegistrationBean getWatermarkConfigFilter() { Set filterUri = new HashSet<>(); + filterUri.add("/index"); filterUri.add("/onlinePreview"); filterUri.add("/picturesPreview"); AttributeSetFilter filter = new AttributeSetFilter(); diff --git a/server/src/main/resources/web/index.ftl b/server/src/main/resources/web/index.ftl index 4aa6a4b6..9bc6f380 100644 --- a/server/src/main/resources/web/index.ftl +++ b/server/src/main/resources/web/index.ftl @@ -58,12 +58,14 @@
-
-
- - -
-
+ <#if fileUploadDisable == false> +
+
+ + +
+
+
@@ -250,7 +252,6 @@ var height = window.document.documentElement.clientHeight - 1; $(".loading_container").css("height", height).show(); } - $("#btnSubmit").click(function () { showLoadingDiv(); $("#fileUpload").ajaxSubmit({