From bce9a624d7a6251c857784a29059b7d80d65128b Mon Sep 17 00:00:00 2001 From: kl Date: Mon, 28 Dec 2020 14:50:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0XML=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E9=A2=84=E8=A7=88UI=E9=A3=8E=E6=A0=BC=EF=BC=8C=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E7=B1=BB=E6=96=87=E6=9C=AC=E9=A2=84=E8=A7=88=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=EF=BC=8C=E6=9B=B4=E6=96=B9=E4=BE=BF=E6=89=A9=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/config/freemarker_implicit.ftl | 2 + .../java/cn/keking/service/FilePreview.java | 2 + .../service/impl/MarkdownFilePreviewImpl.java | 6 +- .../service/impl/SimTextFilePreviewImpl.java | 6 - .../service/impl/XmlFilePreviewImpl.java | 6 +- .../controller/OnlinePreviewController.java | 1 + server/src/main/resources/web/index.ftl | 2 +- server/src/main/resources/web/markdown.ftl | 118 ++++++++++++++++++ server/src/main/resources/web/txt.ftl | 82 +----------- server/src/main/resources/web/xml.ftl | 97 ++++++++++++++ 10 files changed, 230 insertions(+), 92 deletions(-) create mode 100644 server/src/main/resources/web/markdown.ftl create mode 100644 server/src/main/resources/web/xml.ftl diff --git a/server/src/main/config/freemarker_implicit.ftl b/server/src/main/config/freemarker_implicit.ftl index 5de6e4a4..0a088830 100644 --- a/server/src/main/config/freemarker_implicit.ftl +++ b/server/src/main/config/freemarker_implicit.ftl @@ -1,5 +1,7 @@ [#ftl] [#-- @implicitly included --] +[#-- @ftlvariable name="file" type="cn.keking.model.FileAttribute" --] +[#-- @ftlvariable name="fileName" type="java.lang.String" --] [#-- @ftlvariable name="fileTree" type="java.lang.String" --] [#-- @ftlvariable name="baseUrl" type="java.lang.String" --] [#-- @ftlvariable name="imgUrls" type="String" --] diff --git a/server/src/main/java/cn/keking/service/FilePreview.java b/server/src/main/java/cn/keking/service/FilePreview.java index a795992e..db749d47 100644 --- a/server/src/main/java/cn/keking/service/FilePreview.java +++ b/server/src/main/java/cn/keking/service/FilePreview.java @@ -17,6 +17,8 @@ public interface FilePreview { String OFFICE_PICTURE_FILE_PREVIEW_PAGE = "officePicture"; String TXT_FILE_PREVIEW_PAGE = "txt"; String EXEL_FILE_PREVIEW_PAGE = "html"; + String XML_FILE_PREVIEW_PAGE = "xml"; + String MARKDOWN_FILE_PREVIEW_PAGE = "markdown"; String NOT_SUPPORTED_FILE_PAGE = "fileNotSupported"; String filePreviewHandle(String url, Model model, FileAttribute fileAttribute); diff --git a/server/src/main/java/cn/keking/service/impl/MarkdownFilePreviewImpl.java b/server/src/main/java/cn/keking/service/impl/MarkdownFilePreviewImpl.java index b1a4fbcf..c55d9776 100644 --- a/server/src/main/java/cn/keking/service/impl/MarkdownFilePreviewImpl.java +++ b/server/src/main/java/cn/keking/service/impl/MarkdownFilePreviewImpl.java @@ -5,8 +5,6 @@ import cn.keking.service.FilePreview; import org.springframework.stereotype.Service; import org.springframework.ui.Model; -import static cn.keking.service.impl.SimTextFilePreviewImpl.TEXT_TYPE; - /** * @author kl (http://kailing.pub) * @since 2020/12/25 @@ -23,7 +21,7 @@ public class MarkdownFilePreviewImpl implements FilePreview { @Override public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) { - model.addAttribute(TEXT_TYPE,"markdown"); - return simTextFilePreview.filePreviewHandle(url, model, fileAttribute); + simTextFilePreview.filePreviewHandle(url, model, fileAttribute); + return MARKDOWN_FILE_PREVIEW_PAGE; } } diff --git a/server/src/main/java/cn/keking/service/impl/SimTextFilePreviewImpl.java b/server/src/main/java/cn/keking/service/impl/SimTextFilePreviewImpl.java index a89232f5..f5f31f7f 100644 --- a/server/src/main/java/cn/keking/service/impl/SimTextFilePreviewImpl.java +++ b/server/src/main/java/cn/keking/service/impl/SimTextFilePreviewImpl.java @@ -20,9 +20,6 @@ import java.nio.charset.StandardCharsets; @Service public class SimTextFilePreviewImpl implements FilePreview { - public static final String TEXT_TYPE = "textType"; - public static final String DEFAULT_TEXT_TYPE = "simText"; - private final OtherFilePreviewImpl otherFilePreview; public SimTextFilePreviewImpl(OtherFilePreviewImpl otherFilePreview) { @@ -43,9 +40,6 @@ public class SimTextFilePreviewImpl implements FilePreview { } catch (IOException e) { return otherFilePreview.notSupportedFile(model, fileAttribute, e.getLocalizedMessage()); } - if (!model.containsAttribute(TEXT_TYPE)) { - model.addAttribute(TEXT_TYPE, DEFAULT_TEXT_TYPE); - } return TXT_FILE_PREVIEW_PAGE; } diff --git a/server/src/main/java/cn/keking/service/impl/XmlFilePreviewImpl.java b/server/src/main/java/cn/keking/service/impl/XmlFilePreviewImpl.java index 068849fd..9c592681 100644 --- a/server/src/main/java/cn/keking/service/impl/XmlFilePreviewImpl.java +++ b/server/src/main/java/cn/keking/service/impl/XmlFilePreviewImpl.java @@ -5,8 +5,6 @@ import cn.keking.service.FilePreview; import org.springframework.stereotype.Service; import org.springframework.ui.Model; -import static cn.keking.service.impl.SimTextFilePreviewImpl.TEXT_TYPE; - /** * @author kl (http://kailing.pub) * @since 2020/12/25 @@ -22,7 +20,7 @@ public class XmlFilePreviewImpl implements FilePreview { @Override public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) { - model.addAttribute(TEXT_TYPE,"xml"); - return simTextFilePreview.filePreviewHandle(url, model, fileAttribute); + simTextFilePreview.filePreviewHandle(url, model, fileAttribute); + return XML_FILE_PREVIEW_PAGE; } } diff --git a/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java b/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java index 81e5110b..4bce2066 100644 --- a/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java +++ b/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java @@ -57,6 +57,7 @@ public class OnlinePreviewController { return otherFilePreview.notSupportedFile(model, errorMsg); } FileAttribute fileAttribute = fileHandlerService.getFileAttribute(fileUrl, req); + model.addAttribute("file", fileAttribute); FilePreview filePreview = previewFactory.get(fileAttribute); logger.info("预览文件url:{},previewType:{}", fileUrl, fileAttribute.getType()); return filePreview.filePreviewHandle(fileUrl, model, fileAttribute); diff --git a/server/src/main/resources/web/index.ftl b/server/src/main/resources/web/index.ftl index 0e9992a7..12666538 100644 --- a/server/src/main/resources/web/index.ftl +++ b/server/src/main/resources/web/index.ftl @@ -61,7 +61,7 @@
- +
diff --git a/server/src/main/resources/web/markdown.ftl b/server/src/main/resources/web/markdown.ftl new file mode 100644 index 00000000..e61ff772 --- /dev/null +++ b/server/src/main/resources/web/markdown.ftl @@ -0,0 +1,118 @@ + + + + + + 普通文本预览 + + + + +
+
+ + +
+
+
+
+
+ + + + + + + + + + + + + + + diff --git a/server/src/main/resources/web/txt.ftl b/server/src/main/resources/web/txt.ftl index a3643441..adc28f50 100644 --- a/server/src/main/resources/web/txt.ftl +++ b/server/src/main/resources/web/txt.ftl @@ -6,46 +6,18 @@ 普通文本预览 -
- <#if textType?? && textType == "markdown"> -
- - -
-
-
-
- <#elseif textType?? && textType == "xml" > -
- <#else> -
- +
- - - + + +