QQ个性网:专注于分享免费的QQ个性内容

关于我们| 网站公告| 广告服务| 联系我们| 网站地图

搜索
编程 JavaScript Java C++ Python SQL C Io ML COBOL Racket APL OCaml ABC Sed Bash Visual Basic Modula-2 Logo Delphi IDL Groovy Julia REXX Chapel X10 Forth Eiffel C# Go Rust PHP Swift Kotlin R Dart Perl Ruby TypeScript MATLAB Shell Lua Scala Objective-C F# Haskell Elixir Lisp Prolog Ada Fortran Erlang Scheme Smalltalk ABAP D ActionScript Tcl AWK IDL J PostScript IDL PL/SQL PowerShell

Java开发-文件预览软件kkFileView安装及使用

日期:2025/04/04 10:21来源:未知 人气:52

导读:大家好,我是小资。今天给大家分享一款开源的文件在线预览系统,支持Windows、MacOS和Linux系统,且支持docker一键部署。文件预览背景开发中网页端管理系统中会有各种类型的文件,比如(pdf、doc、docx、xls、ppt、png等),文件上传后数据库存放的都是文件的链接,除了图片能简单地实现在线预览外,其他文件基本上都需要下载了才能看到里面的内容。而有时候我们只......

大家好,我是小资。今天给大家分享一款开源的文件在线预览系统,支持Windows、MacOS和Linux系统,且支持docker一键部署。

文件预览

背景

开发中网页端管理系统中会有各种类型的文件,比如(pdf、doc、docx、xls、ppt、png等),文件上传后数据库存放的都是文件的链接,除了图片能简单地实现在线预览外,其他文件基本上都需要下载了才能看到里面的内容。而有时候我们只是想看看里面的内容,但要我们自己在代码中实现这么多文件都能在线预览的工作量是很大的,还可能会有浏览器和文件的兼容问题。

今天就在网上看到一个开源项目:kkFileView , 简单使用了下感觉效果还是很不错的。

项目介绍

kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等。项目作者也列出了支持预览的20多种大种类的文件。

官方支持的预览文件

软件安装

kkFileView 已不再免费提供发行安装包了,现在所有的发行版安装包都需要通过星球花钱进行购买,我是在码云下载的源码自己进行编译的,本次演示下载的版本是目前最新的V4.2.1 。大家如果需要发行包,可以私信我。

下面给大家介绍下Windows、Linux、docker三种安装方式,大家可以根据自己的需要进行安装。

开发工具演示

开始Windows版本使用前,我们先使用idea编辑器进行简单的演示,最后用idea将其打成jar,以备后续的其他系统的使用。

1、下载源码文件

码云上搜索 kkFileView

2、Idea运行****

运行ServerMain中的main方法就可以。

运行main方法

3、本地预览

项目启动后会自动打开页面,端口号等配置都是可以在config文件夹中修改application.properties配置信息就行修改。具体的配置项代表意思可以进入其官网查询。

本地预览

4、使用maven插件将其打包

打包完的文件就会有Windows和Linux的版本的包。

打包完后的文件

Windows版本安装

1、将上面打包好的zip的包解压

解压包目录结构

2、运行bin文件夹中的startup.bat

查看log文件夹中的kkFileView.log文件,出现如下图所示的信息(服务启动完成,演示页访问地址)则表示启动成功。

启动日志

3、输入地址进行访问,后续操作就和在编辑器上启动时是一样的了。

Linux版本安装(使用centos7做演示)

1、上传tar包到Linux系统上

上传tar包

2、解压

tar -zxvf kkFileView-4.2.1.tar.gz

3、查看解压目录****

4、进入解压目录并启动

进入bin目录,执行./startup.sh ,如果Linux系统中没有安装LibreOffice的话,它会自动帮我们下载并安装。

安装

5、测试

测试的时间先把Linux的防火墙关闭或者开放8012端口。

6、预览乱码****

字体问题

大部分Linux系统上并没有预装中文字体或字体不全,需要把常用字体拷贝到Linux服务器上,具体操作如下: 下载如下字体包(文中没法放链接,大家可以在评论中或私信我查看)文件解压完整拷贝到Linux下的 /usr/share/fonts目录。然后依次执行mkfontscale 、mkfontdir 、fc-cache使字体生效

编码问题

1、Excel文件编码格式 Excel软件是可以选择用什么编码去保存文件的

目前我们读取Eecel文件是用的服务器操作系统默认编码,可以通过在启动脚本里加入如-Dfile.encoding=UTF-8指定。

excel修改编码

2、生成html网页编码格式

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

Docker版本安装

1、拉取镜像: docker pull keking/kkfileview

2、运行: docker run -dit -p 8012:8012 keking/kkfileview

3、进入运行起来的容器中,然后可以进入 /opt/kkFileView-4.2.1-SNAPSHOT/bin 安装目录,

运行命令 ./showlog.sh 查看日志

具体使用

普通文件下载url预览

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)));

http/https下载流url预览

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

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)));

使用Nginx代理

例如nginx的访问地址为 https://file.show.cn 想要使用 https://file.show.cn/preview/来做预览,kkFileView部署在内网192.168.1.140服务器上,需要在nginx中添加反向代理如下

location /preview {

proxy_pass 192.168.1.140:8012;

}

修改kkFileView的配置文件如下两项

server.context-path = /preview

base.url = https://file.show.cn/preview

使用如下地址来访问预览页面

var url = 'https://file.show.cn/file/test.txt'; //要预览文件的访问地址

window.open('https://file.show.cn/preview/onlinePreview?url='+encodeURIComponent(url));

结束语

以上则为文件预览解决方案项目-kkFileView的基本安装和使用,具体的配置文件修改大家可以到官网进行查询从而实现项目的自定义。

如果大家觉得文章内容不错,快去分享给更多小伙伴吧。

创作不易,感谢大家的支持,多多关注、分享、点赞,您的鼓励是我前进的动力。

Java开发-对象存储(阿里oss、腾讯cos、七牛云kodo)文件上传

Mysql自带性能分析器-Explain详解

Java开发-参数校验@NotEmpty、@NotBlank、@NotNull

Java开发-@Autowire警告:不建议使用字段注入

关于我们|网站公告|广告服务|联系我们| 网站地图

Copyright © 2002-2023 某某QQ个性网 版权所有 | 备案号:粤ICP备xxxxxxxx号

声明: 本站非腾讯QQ官方网站 所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告