一款让你优雅、高效实现文件预览的解决方案

 前言

项目开发中,不少系统都会涉及到文件操做,好比常见的上传、下载等,这些也都是司空见惯的事情,也比较容易实现。可是有些状况下,须要支持文件的在线预览功能,因为文件格式众多,不一样的文件处理方式不一样,使得预览显得比较复杂,实现起来也相对困难。本文结合本身的开发实战状况,总结下目前经常使用的三种模式及利弊关系,重点讲述下公司实现预览的功能代码及服务的搭建过程。前端

经常使用三种实现方式及优缺点

方式一 使用officeapps的在线连接方式实现vue

具体为view.officeapps.live.com/op/view.asp…此处的url表明文件的wai网访问路径。注意:该url必须是wai网能够访问的路径,不然没法预览。参考代码以下:linux

https://view.officeapps.live.com/op/view.aspx?src=https://demo.jeesite.com/js/a/file/download/1148195356402933760.doc

预览效果:nginx

7fc1518ca7b67c0ddb660e3286d6bc33.png

优势:实现简单,不须要添加单独搭建预览服务,页面中能够经过声明方法的形式添加预览按钮,而后对点击事件追加如上所示的代码块中的路径便可实现预览功能程序员

缺点:url路径必须为wai网能够访问的文件路径,若是文件所存储的服务器没法经过wai网访问,该该方式没法实现预览,并且因为预览时服务会从服务器读取文件信息,因此会存在安全隐患,对于一些涉及隐私的文件来讲,此种方式显示不可取。另外,因为是第三方在线服务,若是officeapps服务关闭的状况下,项目中的功能会受到影响。面试

方式二 本身搭建office-online服务npm

优势:服务的开启和关闭权掌握在本身手中,不用担忧服务关停的状况。另外,服务也不须要wai网访问,将文件和office online服务存放到同一台服务器便可。windows

缺点:服务体量较大,搭建过程比较繁琐,对硬件系统也都有要求(安装环境必须为两台Windows Server 2012 R2 或 Windows Server 2016服务器,一台安装office online服务,一台安装域控服务),还要安装对应的依赖环境,且额外增长了服务器成本开销,操做起来也相对繁琐,因此不太推荐该方法。安全

方式三 使用开源服务kkFileView对应的jar包手动搭建预览服务(windows、linux环境都可实现)服务器

优势:第三方jar包,不须要额外增长开发成本,下载部署便可使用,操做简单,使用方便

缺点:jar包中有些文档格式不支持(不过能知足日常涉及的大部分文件类型),并且表格有些预览样式不友好,可能须要手动修改jar包源码。

综上所述,使用kkFileView对应的jar包无疑是性价比最好的一种实现方式。 接下来重点讲述kkFileView搭建预览服务的过程,主要分为两部分,windows版本和linux版本服务搭建。

1 window版本服务搭建

搭建流程

1. 1 将下载的.zip包解压

1. 2 进入到bin目录,双击.bat文件运行便可

1. 3 vue页面中须要添加预览按钮,引入方法,进行路径拼接调用,代码以下,url为文件完整物理路径,若是使用nginx代理的话,为wang络代理路径,其中localhost:8012为预览服务的访问路径,我的建议尽可能将localhost换成ip,而且将http://localhost:8012/onlinePreview?url= 作成可配置的路径配置到前端所在的文件中动态读取

fileView: function(url) {
  let Base64 = require('js-base64').Base64;
  window.open('http://localhost:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(url)));  
},

注意: 因为方法使用了base64进行加密url路径,因此vue框架要引入base64组件,安装命令以下:

npm install --save js-base64 或者cnpm install --save js-base64

1. 4 服务访问 网址输入localhost:8012或ip:8012,回车,若是看到以下界面,表明成功

90fa02da3be6724b5e5a7ef4fd12cb6a.png

而后点击选择文件--上传--预览,便可看到效果,而后在项目中点击本身的预览按钮能够查看具体效果。

截图以下:

a63fb8cb7ee2633e2d83d296f5c1bef7.png

f6d290a2b3b6dba5285152911c48e91f.png

2 linux版本服务搭建

搭建流程:

2. 1 将下载的.tar.gz包解压

2. 2 进入到bin目录,运行.sh脚本文件

2. 3 因为linux系统下缺乏中文字体,文件预览时可能出现乱码状况,因此须要安装相应字体,首先下载字体包, 而后将文件解压完整拷贝到Linux下的 /usr/share/fonts目录安装,如图

609bb0596567b5cbcac90a906e844a68.png

完成执行如下三个命令使字体生效

f651deac2c9d5128ee044532fd1fc528.png

1. 4 服务访问 网址输入localhost:8012或ip:8012,回车,若是看到以下界面,表明成功

03468a73a7b2c69d665d2d188b1a5cfd.png

预览同window下操做。

备注:文件下载有效期为30天,若是出现不能下载的状况,能够给小编留言评论获取新的连接。

最后

最近我整理了整套《JAVA核心知识点总结》,说实话 ,做为一名Java程序员,不论你需不须要面试都应该好好看下这份资料。拿到手老是不亏的~个人很多粉丝也所以拿到腾讯字节快手等公司的Offer

Java进阶之路群,找管理员获取哦-!

20590d2844016da8b29f68180c9c9255.png

7a6b11da67f88c8367b8961cc8177643.png

相关文章
相关标签/搜索