kkFlileView是一个java开源的文件预览项目。之前我要做一个关于各类office文档在线预览的功能,对我这种还是小白的家伙,要做一个预览难度确实很大,不过好在在网上发现了这款kkFileView的开源的springboot项目,帮助我解决这个大问题。
kkFileVie支持doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本如txt、html、xml、java、properties、sql、js、md、json、conf、ini、vue、php、py、bat、gitignore等文件在线预览,功能非常强大,不仅满足了我的要求,还提供功能的功能,真的是要大赞一番!

​ 官方在线体验(可以看一下效果)

​ 地址:http://file.keking.cn/

​ 接下来说说关于kkFileView在服务器上面的部署

一、下载压缩包
​ 从 码云发行版本 下载最新版发行包

二、在服务器上预装环境
(1)环境要求
Java: 1.8+

OpenOffice或LiberOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)

(我这边是CentOS的环境)

(2)环境配置
​ 在服务器运行如下代码:

yum install -y libXext.x86_64
yum groupinstall -y "X Window System"
1
2
三、解压压缩包
​ 解压下载下来的zip压缩包(可以本地解压),将其放到服务器目录下,打开文件夹的bin目录,运行startup.sh脚本。

​ 运行语句

sh startup.sh
1
​ 浏览器访问服务器8012端口(“http://+”服务器公网IP+“:8012 ”)即可看到项目演示用首页,如果没有注意服务器上的8012端口是否开放。如果没有,去安全组开启?
(我的 “Navicat连接服务器数据库” 最后面一段有介绍如何去安全组开启想要的端口)

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

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(previewUrl));
1
2
五、预览乱码
字体问题
​ 大部分Linux系统上并没有预装中文字体或字体不全,需要把常用字体拷贝到Linux服务器上,具体操作如下: 将Windows下的C:\Windows\Fonts 目录下的文件完整拷贝到Linux下的 /usr/share/fonts目录。然后依次执行mkfontscale 、mkfontdir 、fc-cache使字体生效(有些字体需要单独上传,批量上传往往会自动被跳过)

(如果提示 mkfontscale: command not found,需自行安装 # yum install mkfontscale )

(如果提示 fc-cache: command not found,则需要安装# yum install fontconfig )

安装完成后,重启服务器

 reboot

1
(我的“Linux添加字体”那篇有详细的流程介绍)

编码问题
生成html网页也是用的服务器操作系统默认编码(java系统属性:sun.jnu.encoding),比如用浏览器用手动更改编码格式为utf-8或gbk打开没有问题,但是用浏览器默认编码就有问题,此时可调整系统配置文件中的配置项converted.file.charset可解决此类乱码问题