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.文档在线预览展示
至此大功告成!
kkFIleView实现在线预览文件的功能(linux环境)下相关推荐
- office在线预览 word在线预览 .net在线预览 文件在线浏览接口
office在线预览 word在线预览 excel在线预览 文件浏览接口服务 支持移动端浏览,只要能使用浏览器上网都可以使用,不需要安装任何第三方工具. 1.word在线预览 excel在线预览,.n ...
- js下载文件和在线预览文件
// 在线预览文件let file = url;let lastIndex=file.lastIndexOf(".");let suffix=file.substring(last ...
- aspose转pdf横版_Aspose实现文件转PDF在线预览及水印功能
文件转换及在线预览 因为项目是做OA这一块,有很多附件需要实现在线预览附件,在网上也看了很多相关的资料.主要实现方式就是 (openoffice+swftools+flexpaper)和(aspose ...
- 【aspose】 word/excel转pdf,实现在线预览文件功能
项目场景: 需求描述:上传附件后,可实现在线预览,这里就会存在一个问题,很多附件的类型是没法在线预览的,点击就会下载.除pdf/jpg/jpeg等,于是技术方案定,将word/excel等类型的文件转 ...
- python 在线预览文件_用Python PyQt写一个在线预览图片的GUI
在爬完网上一篇帖子,并得到其中的所有图片链接后,写一个GUI来实现在线预览是一个很自然的想法, 相当于实现一个python版的图片浏览器, 通过这个练习,可以让我们更熟悉PyQt这个库. 这里我用的是 ...
- php DOS word在线预览,如何在 Zoho Docs 中在线预览文件
文件预览 简介 预览让您可以概要了解您的长文档.视频或图册.通过预览让您可以一览文件中的内容. 关于 Zoho Docs 中的预览的以下信息将帮助您:使用预览工具栏. 编辑 MS Office 文件. ...
- linux输出文件没有找到,Linux环境下标准输入、输出、错误信息详解
Linux环境下标准输入.输出.错误信息详解 下面我们介绍在Linux环境下标准输入.输出.错误设备.标准输入设备代号为0, 用来显示输入信息,标准输出设备代号为1,用来显示正常信息,标准错误设备代号 ...
- C# web实现word 转Html、office转Html、pdf转图片 在线预览文件
改篇 pdf 预览再本机没问题,发布再iis中 不行 ,(使用剪贴板的问题..excel和word 可以,) pdf解决:请看我的博文 ----最终解决篇 详细配置及代码 word 转Html 1 / ...
- 前端实现在线预览文件
前置条件:后台返回的的ur需支持直接下载 在utils文件夹封装统一的BASE64方法 const _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh ...
最新文章
- LeetCode 1021:Remove Outermost Parentheses
- ipfs浏览器java实现_IPFS + Ethereum(上篇):JS+IPFS-API存储和获取数据
- Python中Numpy包的学习
- 【转自lzplzp】pair project总结
- 机器学习(Machine Learning)- 吴恩达(Andrew Ng)-学习笔记
- 机器学习:分类_机器学习基础:K最近邻居分类
- scala 类中的对象是类_Scala中的类和对象
- python分类算法的应用_Python基于sklearn库的分类算法简单应用示例
- Spring框架学习笔记07:基于XML配置方式使用Spring MVC
- git pull 分支问题
- LeetCode 410. Split Array Largest Sum
- seaborn—sns.residplot绘制线性回归的残差
- 由swap引出的局部变量,形参和指针的小问题
- DataGridView行号发生变化 使用的事件
- 计算机机房安全管理问题与措施,机房管理中存在的问题及处理对策
- H53D旋转-遁地龙卷风
- GPS数据格式的分析与处理
- Qt游戏编程——飞机大战——补充
- 软件测试行业中ta表示什么意思,软件测试架构师(TA)的职位特点
- 基于STM32的多功能MP3设计 毕业设计(论文)开题报告
热门文章
- 前端面试题整理汇总100题
- BCryptPasswordEncoder 用户登录密码加密后对比错误处理
- 工作总结:涉及数据库、软件测试等内容
- 如何将两部手机内容互换_两部苹果手机怎么互相同步?如何把数据导入另一台iPhone上?...
- “大一新生如何参加智能车比赛”帖子回复
- 一把巴枪,和被改变的菜鸟驿站站长们
- FP5207 升压 5V9V12V24V36V42V大功率芯片
- python3版本800行的代码_用800行代码做个行为树(Behavior Tree)的库(3)
- 魅族note6 root方法
- Python基础:面向对象基础 (一) 类及其属性和魔法方法