kkFIleView实现在线预览文件的功能(linux环境)下

问题

公司最近做的项目需要支持文件的在线预览功能,包括支持图片、文档(word、excel、ppt、pdf)、压缩包、音频(mp3)、视频(mp4)、代码(html、css、js、java、python)、脚本等格式的文件,如果自己去开发的太耗费人力和物力了,时间上也不允许,就想想有没有插件式的开源应用可以使用。经过查找,果然发现码云上有这开源的类似插件的工具。你要做的就是启动kkFIleView,把它集成进去你的项目中,完全不用编码,想着怎么兼容各种格式,完全就像使用插件一样方便。
在这里插入图片描述现在就记录limux线上集成运行的过程,这里包括安装OpenOffice安装在线预览的SpringBoot的程序两部分。

一、linux上安装OpenOffice (需要有root用户的权限)

1.下载linux OpenOffice安装的安装包

下载地址:https://www.jianshu.com/p/db7733274da3

2.解压压缩包,执行下面的命令,解压后的文件夹名称为zh-CN

unzip Apache_OpenOffice_4.1.2_Linux_x86-64_install-rpm_zh-CN.tar.zip
tar -vxf Apache_OpenOffice_4.1.2_Linux_x86-64_install-rpm_zh-CN.tar.gz

在这里插入图片描述

3.进入解压目录zh-CN/RPMS/下,执行命令

cd zh-CN/RPMS/

4.执行下面的安装命令,安装命令

rpm  -ivh  *.rpm

在这里插入图片描述

5.进入OpenOffice安装目录,执行下面的命令

cd /opt/openoffice4/program/

6.在/opt/openoffice4/program/目录下开启openOffice服务,端口为8100

./soffice -headless -accept="socket,host=127.0.0.1,port=8100:urp;"  -nofirststartwizard & 

7.查看开启的服务

ps -ef | grep soffice

在这里插入图片描述

二、linux安装在线预览的jar包

1.修改代码:在windows本地修改在线预览代码

修改配置文件:在配置文件上使用linux线上的配置,注释windows本地的配置

#openoffice home路径
#linux 线上
office.home = /opt/openoffice4
#windows 本地
#office.home = C:\\Program Files (x86)\\OpenOffice 4
#office.home = ${KK_OFFICE_HOME:default}

在这里插入图片描述

2.修改代码:在windows本地修改在线预览代码

注释ConfigUtils类中的一行代码(这一行代码是为了在windows顺利启动起来而添加的,linux上则不需要)
在这里插入图片描述

3.修改完代码后,install打包程序。从本地(windows)打包好的maven项目路径下,提取kkFileView-3.5.1.tar.gz包上传至服务器并解压4.进入到文件夹/home/cloudisk/kkFileView-3.5.1/bin目录下,启动jar包在这里插入图片描述

4.进入到文件夹/home/cloudisk/kkFileView-3.5.1/bin目录下,启动jar包

cd  /home/cloudisk/kkFileView-3.5.1/bin
nohup java -jar kkFileView-3.5.1.jar  &

在这里插入图片描述在这里插入图片描述

5.引入代码中

5.1. 普通文件下载url预览

当您的项目内需要预览文件时,只需要调用浏览器打开本项目的预览接口,并传入须要预览文件的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(url)));
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(url));

5.2. http/https下载流url预览

很多系统内不是直接暴露文件下载地址,而是请求通过id、code等参数到通过统一的接口,后端通过id或code等参数定位文件,再通过OutputStream输出下载,此时下载url是不带文件后缀名的,预览时需要拿到文件名,传一个参数fullfilename=xxx.xxx来指定文件名,示例如下

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

var originUrl = 'http://127.0.0.1:8080/filedownload?fileId=1'; //要预览文件的访问地址
var previewUrl = originUrl + '&fullfilename=test.txt'
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(previewUrl)));
2.x.x 及以下版本
var originUrl = 'http://127.0.0.1:8080/filedownload?fileId=1'; //要预览文件的访问地址
var previewUrl = originUrl + '&fullfilename=test.txt'
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(previewUrl));

备注:我司用SpringBoot返回接口是下载流的方式,所以选择7.2的 3.x.x 版本的方式进行引入。

6.文档在线预览展示

在这里插入图片描述至此大功告成!


版权声明:本文为suewar3原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。