在线预览

lishihuan大约 2 分钟

在线预览

官网open in new window

使用demoopen in new window

1. 环境要求

  1. Java: 1.8+
  2. LibreOffice或OpenOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)

2. 部署运行

1). 物理机或虚拟机上运行

  1. 码云发行版本open in new window 下载最新版发行包
  2. 解压kkFileView-x.x.x文件(Windows用.zip包,Linux/MacOS用.tar.gz包)
  3. 打开解压后文件夹的bin目录,运行startup脚本(Windows下以管理员身份运行startup.bat,Linux以root用户运行startup.sh
  4. 浏览器访问本机8012端口 http://127.0.0.1:8012open in new window 即可看到项目演示用首页

2). Docker容器环境环境运行

拉取镜像

# 网络环境方便访问docker中央仓库
docker pull keking/kkfileview:4.1.0

# 方式二: 网络环境不方便访问docker中央仓库
wget https://kkfileview.keking.cn/kkFileView-4.1.0-docker.tar
docker load -i kkFileView-4.1.0-docker.tar

运行

指定 -d 后台运行

# 第一次使用创建容器
docker run -it -d -p 8012:8012 keking/kkfileview:4.1.0
docker run -it -d --restart=always -p 8012:8012 keking/kkfileview:4.1.0 ## 设置开机自启--没尝试


## 后面启动
docker start <container_id>
## 查看日志
docker logs ntainer_id>
# 关闭
docker stop <container_id>
# 设置自动启动
docker update --restart=always <container_id>

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

3. 项目接入使用

当您的项目内需要预览文件时,只需要调用浏览器打开本项目的预览接口,并传入须要预览文件的url,示例如下:

3.x.x 及以上版本

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script>

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(previewUrl)));

2.x.x 及以下版本

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(previewUrl));

详细使用说明见 使用指南open in new window

4. 修改支持后以离线的方式安装

文件预览改造-使用说明

5. 异常记录

1. 出现java.net.UnknownHostException 域名解析失败

java.net.UnknownHostException: baidu.com
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) ~[na:1.8.0_251]
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_251]
	at java.net.Socket.connect(Socket.java:606) ~[na:1.8.0_251]
	at java.net.Socket.connect(Socket.java:555) ~[na:1.8.0_251]
	at sun.net.NetworkClient.doConnect(NetworkClient.java:180) ~[na:1.8.0_251]
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) ~[na:1.8.0_251]
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) ~[na:1.8.0_251]
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:242) ~[na:1.8.0_251]
	at sun.net.www.http.HttpClient.New(HttpClient.java:339) ~[na:1.8.0_251]
	at sun.net.www.http.HttpClient.New(HttpClient.java:357) ~[na:1.8.0_251]
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226) ~[na:1.8.0_251]
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162) ~[na:1.8.0_251]
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056) ~[na:1.8.0_251]
	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990) ~[na:1.8.0_251]
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1570) ~[na:1.8.0_251]
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498) ~[na:1.8.0_251]
	at java.net.URL.openStream(URL.java:1067) ~[na:1.8.0_251]
	at org.apache.commons.io.FileUtils.copyURLToFile(FileUtils.java:1025) ~[commons-io-2.7.jar!/:2.7]
	at cn.keking.utils.DownloadUtils.downLoad(DownloadUtils.java:43) ~[classes!/:na]
	at cn.keking.service.impl.OfficeFilePreviewImpl.filePreviewHandle(OfficeFilePreviewImpl.java:56) [classes!/:na]
	at cn.keking.web.controller.OnlinePreviewController.onlinePreview(OnlinePreviewController.java:71) [classes!/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_251]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_251]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_251]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_251]

原因是docker无法访问网络,重启docker就行