首先要感谢码云开源项目对文件预览提供的支持和带来的便利,大家可以去参考学习(安利一波~)
开源地址: https://gitee.com/kekingcn/file-online-preview
在对kkfileview预览服务功能的学习之中遇到了部分问题,特作此笔记记录,也希望能帮到迷茫的大家
一、服务部署
kkfileview提供了多种部署方式
1) 物理机或虚拟机上运行
1. 从 码云发行版本 下载最新版发行包
2. 解压kkFileView-2.x.x.zip包
解压命令: unzip kkFileView-2.x.x.zip
其中,若服务器中未支持unzip命令,需要执行:
安装命令: yum install zip #安装打包服务命令 提示输入时,请输入y;
安装命令:yum install unzip #安装解压服务命令 提示输入时,请输入y;
3. 打开解压后文件夹的bin目录,运行startup脚本(Windows下以管理员身份运行startup.bat
,Linux以root用户运行startup.sh
)
4. 浏览器访问本机8012端口(http://127.0.0.1:8012 )即可看到项目演示用首页
如遇到服务为正常启动时,可查看log文件定位问题
环境要求:
1.Java: 1.8+
2.OpenOffice或LiberOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)
2)Docker容器环境环境运行
1. 拉取镜像
docker pull keking/kkfileview
2. 运行
docker run -it -p 8012:8012 keking/kkfileview
3. 浏览器访问容器8012端口(http://xxx.xxx.xxx.xxx:8012 )即可看到项目演示用首页
docker容器部署方式,由于拉取镜像过程中下载文件大小略大且docker连接总是中断,未能测试完成
二、项目如何接入使用
此项目为spring boot服务(内置tomcat),单独部署不需要集成业务系统中
部署完服务后在前端页面配置地址访问即可
var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(previewUrl));
如果在内网环境中, 不想开放端口或开放服务可配置在业务系统nginx配置文件中做服务转发
# 文件预览代理配置
location /fileview/ {
proxy_pass http://服务器IP:8012/;
}
前端地址即可通过以下地址访问:
http://nginx服务地址:端口/fileview/onlinePreview?url=要预览文件的访问地址
三、遇到的问题
1. Linux服务器打开doc文件时会出现空白或乱码的情况,可能造成该问题的原因有:
a. 编码问题(但是根据官方文档中的修改配置文件的方法未见成效)
b. 系统缺少字体导致(通过该处理解决问题)
首先需要确认系统中是否缺少字体文件(centos7.4环境)
进入到下述文件夹中查看 cd /user/share/fonts
如缺少文件,将Windows下的C:\Windows\Fonts 目录下的文件完整拷贝到Linux下的 /usr/share/fonts目录
依次执行下述命令使字体生效:
mkfontscale
mkfontdir
fc-cache
#如缺少命令服务,首先执行以下命令:
yum install mkfontscale #开启mkfontscale服务
yum install fontconfig #开启fc-cache服务
据开源项目下问题讨论中,有人提到需要重启服务器才能生效,测试发现重新启动kkfileview服务就能生效。
不积硅步无以至千里,不积小流无以成江海;