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 @@