From 10160e81041a22045a64486ec6fd48b9a1b04ad3 Mon Sep 17 00:00:00 2001 From: chenkailing <632104866@qq.com> Date: Sun, 27 Dec 2020 16:41:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A02020=E5=B9=B4=E6=9C=80?= =?UTF-8?q?=E5=90=8E=E7=9A=84=E5=8F=91=E7=89=88=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 20 +++++++++++++++++++ .../controller/OnlinePreviewController.java | 15 +++++++++----- server/src/main/resources/web/index.ftl | 18 +++++++++++++++++ 3 files changed, 48 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8f0d9d69..ee0e709c 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,26 @@ pdf预览模式预览效果如下 ### 历史更新记录 +> 2020年12月27日 : + +2020年年终大版本更新,架构全面设计,代码全面重构,代码质量全面提升,二次开发更便捷,欢迎拉源码品鉴,提issue、pr共同建设 + +1. 架构模块调整,大量的代码重构,代码质量提升N个等级,欢迎品鉴 +2. 增强XML文件预览效果,新增XML文档数结构预览 +3. 新增markdown文件预览支持,预览支持md渲染和源文本切换支持 +4. 切换底层web server为jetty,解决这个issue:https://github.com/kekingcn/kkFileView/issues/168 +5. 引入cpdetector,解决文件编码识别问题 +6. url采用base64+urlencode双编码,彻底解决各种奇葩文件名预览问题 +7. 新增配置项office.preview.switch.disabled,控制offic文件预览切换开关 +8. 优化文本类型文件预览逻辑,采用Base64传输内容,避免预览时再次请求文件内容 +9. office预览图片模式禁用图片放大效果,达到图片和pdf预览效果一致的体验 +10. 直接代码静态设置pdfbox兼容低版本jdk,在IDEA中运行也不会有警告提示 +11. 移除guava、hutool等非必须的工具包,减少代码体积 +12. Office组件加载异步化,提速应用启动速度最快到5秒内 +13. 合理设置预览消费队列的线程数 +14. 修复压缩包里文件再次预览失败的bug +15. 修复图片预览的bug + > 2020年05月20日 : 1. 新增支持全局水印,并支持通过参数动态改变水印内容 2. 新增支持CAD文件预览 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 37896d20..52bd4d91 100644 --- a/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java +++ b/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java @@ -12,6 +12,7 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.util.Base64Utils; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @@ -22,6 +23,8 @@ import java.io.*; import java.util.Arrays; import java.util.List; +import static cn.keking.service.FilePreview.PICTURE_FILE_PREVIEW_PAGE; + /** * @author yudian-it */ @@ -52,16 +55,18 @@ public class OnlinePreviewController { @RequestMapping(value = "/picturesPreview") public String picturesPreview(String urls, Model model, HttpServletRequest req) throws UnsupportedEncodingException { String fileUrls = new String(Base64Utils.decodeFromString(urls)); - String currentUrl = req.getParameter("currentUrl"); logger.info("预览文件url:{},urls:{}", fileUrls, urls); - // 路径转码 - String decodedCurrentUrl = new String(Base64Utils.decodeFromString(currentUrl)); // 抽取文件并返回文件列表 String[] imgs = fileUrls.split("\\|"); List imgUrls = Arrays.asList(imgs); model.addAttribute("imgUrls", imgUrls); - model.addAttribute("currentUrl", decodedCurrentUrl); - return "picture"; + + String currentUrl = req.getParameter("currentUrl"); + if(StringUtils.hasText(currentUrl)){ + String decodedCurrentUrl = new String(Base64Utils.decodeFromString(currentUrl)); + model.addAttribute("currentUrl", decodedCurrentUrl); + } + return PICTURE_FILE_PREVIEW_PAGE; } /** diff --git a/server/src/main/resources/web/index.ftl b/server/src/main/resources/web/index.ftl index d29b3960..e507a9c6 100644 --- a/server/src/main/resources/web/index.ftl +++ b/server/src/main/resources/web/index.ftl @@ -85,6 +85,24 @@ window.open('http://127.0.0.1:8012/picturesPreview?urls='+encodeURIComponent(bas
+ 2020年12月27日 :
+ 2020年年终大版本更新,架构全面设计,代码全面重构,代码质量全面提升,二次开发更便捷,欢迎拉源码品鉴,提issue、pr共同建设 + 1. 架构模块调整,大量的代码重构,代码质量提升N个等级,欢迎品鉴
+ 2. 增强XML文件预览效果,新增XML文档数结构预览
+ 3. 新增markdown文件预览支持,预览支持md渲染和源文本切换支持
+ 4. 切换底层web server为jetty,解决这个issue:#issues/168
+ 5. 引入cpdetector,解决文件编码识别问题
+ 6. url采用base64+urlencode双编码,彻底解决各种奇葩文件名预览问题
+ 7. 新增配置项office.preview.switch.disabled,控制offic文件预览切换开关
+ 8. 优化文本类型文件预览逻辑,采用Base64传输内容,避免预览时再次请求文件内容
+ 9. office预览图片模式禁用图片放大效果,达到图片和pdf预览效果一致的体验
+ 10. 直接代码静态设置pdfbox兼容低版本jdk,在IDEA中运行也不会有警告提示
+ 11. 移除guava、hutool等非必须的工具包,减少代码体积
+ 12. Office组件加载异步化,提速应用启动速度最快到5秒内
+ 13. 合理设置预览消费队列的线程数
+ 14. 修复压缩包里文件再次预览失败的bug
+ 15. 修复图片预览的bug

+ 2020年05月20日 :
1. 新增支持全局水印,并支持通过参数动态改变水印内容
2. 新增支持CAD文件预览