概述

在线文件预览服务

项目特性

  1. 支持word excel ppt pdf等办公文档
  2. 支持txt,java,php,py,md,js,css等所有纯文本
  3. 支持zip,rar,jar,tar,gzip等压缩包
  4. 支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像)
  5. 支持mp3,mp4,flv等多媒体文件预览
  6. 使用spring boot开发,预览服务搭建部署非常简便
  7. rest接口提供服务,跨平台特性(java,php,python,go,php,….)都支持,应用接入简单方便
  8. 支持普通http/https文件下载url、http/https文件下载流url、ftp下载url等多种预览源
  9. 提供zip,tar.gz发行包,提供一键启动脚本和丰富的配置项,方便部署使用
  10. 提供Docker镜像发行包,方便在容器环境部署
  11. 抽象预览服务接口,方便二次开发,非常方便添加其他类型文件预览支持
  12. 最最重要Apache协议开源,代码pull下来想干嘛就干嘛

参考

https://kkfileview.keking.cn/zh-cn/docs/production.html

下载

https://gitee.com/kekingcn/file-online-preview/releases

安装

Windows 中安装

  • 安装 JDK 【不需要配置环境变量】

  • 准备 OpenOffice

    1. 下载 OpenOffice:Apache OpenOffice - 下载
    2. 安装。例如安装路径为:C:\Program Files (x86)\OpenOffice 4
  • 配置 kkfileview

    打开 config/application.properties, 修改 office.home 为上面 OpenOffice 安装路径

    1
    2
    3
    # 以下必须使用双反斜线
    office.home = C:\\Program Files (x86)\\OpenOffice 4
    #office.home = ${KK_OFFICE_HOME:default}
  • 启动 kkfileview,点击 bin/startup.bat

  • 浏览器访问 http://localhost:8012 如果访问不了,则打开 log/kkFileView.log 查看报错原因

  • 不明原因的报错,可以尝试重启电脑!!!

  • 使用nginx代理时预览出现异常参考下面《使用nginx代理时预览出现异常》

Docker 中安装

1
2
3
4
5
6
7
#拉取镜像
docker pull keking/kkfileview

#运行
docker run -it -p 8012:8012 keking/kkfileview

#浏览器访问容器 8012 端口 http://xxx.xxx.xxx.xxx:8012 即可看到项目演示用首页

使用文档

https://kkfileview.keking.cn/zh-cn/docs/usage.html

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>kkfileview</title>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script>
<!-- <script type="text/javascript" src="base64.min.js"></script> -->
</head>
<body>
<script>
//要预览文件的访问地址
var url = 'http://124.70.66.10x:8888/123.pdf';
// var url = 'http://192.168.0.88:8080/2.pdf';
// var url = 'http://192.168.0.88:8080/车辆管理_司机信息.xls';
// var url = 'http://192.168.0.88:8080/通用工具类或 system 接口.md';
// var url = 'http://192.168.0.88:8080/1_1636703921358.jpg';
// var url = 'http://192.168.0.88:8080/近十年(2010-2020)奥斯卡最佳动画短片(合集) - 003 - 《亲爱的篮球》Dear Basketball.90届奥斯卡最佳动画短片.美国.导演格兰·基恩.mp4';
// window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(url)));
window.open('http://124.70.66.10x:8888/kkfileview/onlinePreview?url='+encodeURIComponent(Base64.encode(url)));

//多图片预览
// var url = 'http://192.168.0.88:8080/1_1636703921358.jpg|http://192.168.0.88:8080/ae49a2b64539375f0fae2d3467abf0a.png';
// window.open('http://127.0.0.1:8012/picturesPreview?urls='+encodeURIComponent(Base64.encode(url)));
</script>
</body>
</html>

使用nginx代理

  • 修改kkFileView的配置文件 application.properties 如下两项
1
2
3
4
5
6
7
8
9
# 端口改为 8013
server.port = ${KK_SERVER_PORT:8013}

# context path 改为 /kkfileview
server.servlet.context-path= /kkfileview

# 提供预览服务的地址,默认从请求url读,如果使用nginx等反向代理,需要手动设置
# 例如nginx的访问地址为 `https://file.keking.cn` 想要使用 `https://file.keking.cn/kkfileview/`来做预览
base.url = https://file.keking.cn/kkfileview
  • 修改 nginx 配置文件
    kkFileView部署在内网192.168.1.233 服务器上,需要在nginx中添加反向代理如下:
1
2
3
4
5
6
7
8
9
10
11
location /kkfileview {
proxy_pass http://192.168.1.233:8013;
}

// 如果页面静态资源加载报错,则去掉下面静态资源缓存配置 !!!!
location ~* \.(js|css|jpg|jpeg|gif|png|swf)$ {
if (-f $request_filename) {
expires 1h;
break;
}
}
  • 使用如下地址来访问预览页面
1
2
var url = 'https://file.keking.cn/file/test.txt'; //要预览文件的访问地址
window.open('https://file.keking.cn/kkfileview/onlinePreview?url='+encodeURIComponent(url));