问题

公司最近做的项目需要支持文件的在线预览功能,包括支持图片、文档(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.文档在线预览展示

至此大功告成!

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

  1. office在线预览 word在线预览 .net在线预览 文件在线浏览接口

    office在线预览 word在线预览 excel在线预览 文件浏览接口服务 支持移动端浏览,只要能使用浏览器上网都可以使用,不需要安装任何第三方工具. 1.word在线预览 excel在线预览,.n ...

  2. js下载文件和在线预览文件

    // 在线预览文件let file = url;let lastIndex=file.lastIndexOf(".");let suffix=file.substring(last ...

  3. aspose转pdf横版_Aspose实现文件转PDF在线预览及水印功能

    文件转换及在线预览 因为项目是做OA这一块,有很多附件需要实现在线预览附件,在网上也看了很多相关的资料.主要实现方式就是 (openoffice+swftools+flexpaper)和(aspose ...

  4. 【aspose】 word/excel转pdf,实现在线预览文件功能

    项目场景: 需求描述:上传附件后,可实现在线预览,这里就会存在一个问题,很多附件的类型是没法在线预览的,点击就会下载.除pdf/jpg/jpeg等,于是技术方案定,将word/excel等类型的文件转 ...

  5. python 在线预览文件_用Python PyQt写一个在线预览图片的GUI

    在爬完网上一篇帖子,并得到其中的所有图片链接后,写一个GUI来实现在线预览是一个很自然的想法, 相当于实现一个python版的图片浏览器, 通过这个练习,可以让我们更熟悉PyQt这个库. 这里我用的是 ...

  6. php DOS word在线预览,如何在 Zoho Docs 中在线预览文件

    文件预览 简介 预览让您可以概要了解您的长文档.视频或图册.通过预览让您可以一览文件中的内容. 关于 Zoho Docs 中的预览的以下信息将帮助您:使用预览工具栏. 编辑 MS Office 文件. ...

  7. linux输出文件没有找到,Linux环境下标准输入、输出、错误信息详解

    Linux环境下标准输入.输出.错误信息详解 下面我们介绍在Linux环境下标准输入.输出.错误设备.标准输入设备代号为0, 用来显示输入信息,标准输出设备代号为1,用来显示正常信息,标准错误设备代号 ...

  8. C# web实现word 转Html、office转Html、pdf转图片 在线预览文件

    改篇 pdf 预览再本机没问题,发布再iis中 不行 ,(使用剪贴板的问题..excel和word 可以,) pdf解决:请看我的博文 ----最终解决篇 详细配置及代码 word 转Html 1 / ...

  9. 前端实现在线预览文件

    前置条件:后台返回的的ur需支持直接下载 在utils文件夹封装统一的BASE64方法 const _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh ...

最新文章

  1. LeetCode 1021:Remove Outermost Parentheses
  2. ipfs浏览器java实现_IPFS + Ethereum(上篇):JS+IPFS-API存储和获取数据
  3. Python中Numpy包的学习
  4. 【转自lzplzp】pair project总结
  5. 机器学习(Machine Learning)- 吴恩达(Andrew Ng)-学习笔记
  6. 机器学习:分类_机器学习基础:K最近邻居分类
  7. scala 类中的对象是类_Scala中的类和对象
  8. python分类算法的应用_Python基于sklearn库的分类算法简单应用示例
  9. Spring框架学习笔记07:基于XML配置方式使用Spring MVC
  10. git pull 分支问题
  11. LeetCode 410. Split Array Largest Sum
  12. seaborn—sns.residplot绘制线性回归的残差
  13. 由swap引出的局部变量,形参和指针的小问题
  14. DataGridView行号发生变化 使用的事件
  15. 计算机机房安全管理问题与措施,机房管理中存在的问题及处理对策
  16. H53D旋转-遁地龙卷风
  17. GPS数据格式的分析与处理
  18. Qt游戏编程——飞机大战——补充
  19. 软件测试行业中ta表示什么意思,软件测试架构师(TA)的职位特点
  20. 基于STM32的多功能MP3设计 毕业设计(论文)开题报告

热门文章

  1. 前端面试题整理汇总100题
  2. BCryptPasswordEncoder 用户登录密码加密后对比错误处理
  3. 工作总结:涉及数据库、软件测试等内容
  4. 如何将两部手机内容互换_两部苹果手机怎么互相同步?如何把数据导入另一台iPhone上?...
  5. “大一新生如何参加智能车比赛”帖子回复
  6. 一把巴枪,和被改变的菜鸟驿站站长们
  7. FP5207 升压 5V9V12V24V36V42V大功率芯片
  8. python3版本800行的代码_用800行代码做个行为树(Behavior Tree)的库(3)
  9. 魅族note6 root方法
  10. Python基础:面向对象基础 (一) 类及其属性和魔法方法