跳至主要內容

kkFileView

chanchaw大约 2 分钟projs

概述

在线预览多种格式的文档,官网open in new window 。在2026年5月4日已经是5.5版本,要求 JDK21,本文档介绍使用 4.4.0 运行在 JDK8

编译部署

一开始根据官网的步骤,下载编译都是最新版本 5.5,要求 JDK21,和目前大多数的项目都不同,后来找到 4.4.0 版本在客户的 windows server 2019 standard 上测试通过(编译后的文件是 Y:\客户资料\showa\app\kkFileView-4.4.0.zip)。并制作了自己的 仓库open in new window,在官方源码的基础上做了如下两处修改

  • 注释了 配置文件 中的 trust.host,允许来自所有站点的文件通过本项目预览

  • pom.xml 追加下面代码,在编译时跳过测试用例 - 在节点 project 下追加下面代码

      ```xml
      <properties>
          <java.version>8</java.version>
          <maven.test.skip>true</maven.test.skip>
      </properties>
      ```
    
  • 应用在 showa 项目中需要修改前端代码,在采购申请单据页面表格点击附件后弹出的附件模态窗相关代码如下,点击文件名后会新增一个浏览器标签页预览文件,下面采用了 kkFileView 原始访问地址,没有使用 nginx 做反向代理

function getEncodedUrl(url){
    var base64Str = btoa(url);// 若 url 含非 ASCII,需先 encodeURIComponent
    return encodeURIComponent(base64Str);
}
// 直接访问 springboot 后台提供的文件地址:
// http://127.0.0.1/showabe/purchase/6e04b82fcd8d48c0a45680c4b74f4dbb.pdf
// 下面变量 row.extension = 6e04b82fcd8d48c0a45680c4b74f4dbb.pdf
const fileUrl = getEncodedUrl("http://127.0.0.1/showabe/purchase/" + row.extension);
const previewUrl = 'http://127.0.0.1:8012/onlinePreview?url=' + fileUrl;
return `<a href="${previewUrl}" target="_blank" download="${row.filename_original}">${value}</a>`;

之后可以通过 IDEA 中的 maven 编译项目,成功编译后在 路径 下会生成 windows部署文件linux部署文件,注意不是用同目录下的 jar文件 ,要使用前面两个压缩包文件,在目标服务器上解压后出现下面多个目录 bin,config,file,LibreOfficePortable,log,运行文件 ./bin/startup.bat 启动项目,然后访问 http://localhost:8012,之后就可以复制网络文件地址到本项目首页用于预览的文本框中点击 预览 按钮进行预览。

测试成功的编译后的压缩包在 Y:\客户资料\showa\app\kkFileView-4.4.0.zip