在线预览
大约 2 分钟
在线预览
1. 环境要求
- Java: 1.8+
- LibreOffice或OpenOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)
2. 部署运行
1). 物理机或虚拟机上运行
- 从 码云发行版本 下载最新版发行包
- 解压kkFileView-x.x.x文件(Windows用.zip包,Linux/MacOS用.tar.gz包)
- 打开解压后文件夹的bin目录,运行startup脚本(Windows下以管理员身份运行
startup.bat,Linux以root用户运行startup.sh) - 浏览器访问本机8012端口 http://127.0.0.1:8012 即可看到项目演示用首页
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));
详细使用说明见 使用指南
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就行