引言
当今时代,无论是在教育、商业还是技术领域,我们都面临着大量文档和多媒体文件的处理需求。为了有效管理和预览这些不同格式的文件,需要一个强大、灵活且用户友好的工具。这就是kkFileView的诞生背景。它是一个基于Spring Boot的在线文件预览解决方案,支持广泛的文件类型,包括常见的办公文档、图像、视频和音频文件。
kkFileView的优势在于其使用了流行的Spring Boot框架进行开发,这不仅保证了项目的现代性和可维护性,还意味着它易于上手和部署。它提供了一个简单而强大的REST接口,可以跨平台使用,包括Java、PHP、Python、Go等。这使得kkFileView成为多种应用场景的理想选择,无论是为了个人用途还是集成到企业级系统中。
此外,kkFileView支持从多种来源预览文件,如HTTP/HTTPS URL、FTP下载链接等。它还提供了容易部署的zip和tar.gz发行包,以及Docker镜像,大大简化了部署过程。其丰富的配置项和一键启动脚本也为用户提供了极大的方便。
本教程旨在指导您如何搭建和配置kkFileView,使您能够轻松处理和预览各种文件类型。从基础的安装步骤到高级配置,我们将一步步引导您完成整个过程,确保您能够充分利用kkFileView的强大功能。无论您是开发人员、IT专业人士还是普通用户,本教程都将为您提供所需的一切知识,让您轻松上手kkFileView。让我们开始吧!
demo
https://fileview.ywsj.cf/
支持的文件类型
支持文件类型 | 描述 |
---|---|
Office 办公文档 | doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx, xlam, xla, pages |
国产 WPS Office 办公文档 | wps, dps, et, ett, wpt |
OpenOffice、LibreOffice 办公文档 | odt, ods, ots, odp, otp, six, ott, fodt, fods |
Visio 流程图文件 | vsd, vsdx |
Windows 系统图像文件 | wmf, emf |
Photoshop 软件模型文件 | psd, eps |
文档 | pdf, ofd, rtf |
XMind 软件模型文件 | xmind |
工作流文件 | bpmn |
邮件文件 | eml |
图书文档 | epub |
3D 模型文件 | obj, 3ds, stl, ply, gltf, glb, off, 3dm, fbx, dae, wrl, 3mf, ifc, brep, step, iges, fcstd, bim |
CAD 模型文件 | dwg, dxf, dwf, iges, igs, dwt, dng, ifc, dwfx, stl, cf2, plt |
纯文本 | txt, xml(渲染), md(渲染), java, php, py, js, css |
压缩包 | zip, rar, jar, tar, gzip, 7z |
图片预览 | jpg, jpeg, png, gif, bmp, ico, jfif, webp |
图信息模型文件 | tif, tiff |
图像格式文件 | tga |
矢量图像格式文件 | svg |
音视频格式文件 | mp3, wav, mp4, flv |
视频格式转码预览 | avi, mov, rm, webm, ts, rm, mkv, mpeg, ogg, mpg, rmvb, wmv, 3gp, ts, swf |
医疗数位影像预览 | dcm |
绘图预览 | drawio |
-
文本预览
支持所有类型的文本文档预览, 由于文本文档类型过多,无法全部枚举,默认开启的类型如下 txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd
文本预览效果如下
-
图片预览
支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像),预览效果如下
图片预览
-
word文档预览
支持doc,docx文档预览,word预览有两种模式:一种是每页word转为图片预览,另一种是整个word文档转成pdf,再预览pdf。两种模式的适用场景如下
图片预览:word文件大,前台加载整个pdf过慢
pdf预览:内网访问,加载pdf快
图片预览模式预览效果如下
pdf预览模式预览效果如下
4. ppt文档预览
支持ppt,pptx文档预览,和word文档一样,有两种预览模式
图片预览模式预览效果如下
pdf预览模式预览效果如下
-
pdf文档预览
支持pdf文档预览,和word文档一样,有两种预览模式
图片预览模式预览效果如下
pdf预览模式预览效果如下
-
excel文档预览
支持xls,xlsx文档预览,预览效果如下
ps,如碰到excel预览乱码问题,可参考 预览乱码
另xlsx还支持web预览模式(4.3.0版本起默认启用),预览效果如下
-
压缩文件预览
支持zip,rar,jar,tar,gzip等压缩包,预览效果如下
可点击压缩包中的文件名,直接预览文件,预览效果如下
-
多媒体文件预览
理论上支持所有的视频、音频文件,由于无法枚举所有文件格式,默认开启的类型如下
mp3,wav,mp4,flv
如有没有未覆盖全面,可通过配置文件指定多媒体类型
视频预览效果如下
音频预览效果如下
-
CAD文档预览
支持CAD dwg文档预览,和word文档一样,有两种预览模式
图片预览模式预览效果如下
pdf预览模式预览效果如下
-
流程图bpmn文件预览
支持bpmn流程图文件预览,预览效果如下
-
3D模型文件文件预览
支持 obj, 3ds, stl, ply, gltf, glb, off, 3dm, fbx, dae, wrl, 3mf, ifc, brep, step, iges, fcstd, bim 等3D模型文件预览,预览效果如下
-
dcm医疗数位影像预览
支持dcm医疗数位影像预览,预览效果如下
-
drawio流程图预览
支持drawio流程图预览,预览效果如下
14.Markdown预览
支持Markdown预览,预览效果如下
准备条件
1)一台服务器或者飞牛NAS
需要便宜VPS的可以参考这个
https://duan.yyzq.eu.org/vps1
香港VPS
香港Colo数据中心,3C直连,平均延时30+ms,免备案
名称 | CPU | RAM | 硬盘 | 带宽 | 月流量 | 价格 | 购买链接 |
---|---|---|---|---|---|---|---|
香港BGP 标配版 | 1C | 1G | 30G | 3Mbps | 无限 | 22 元/月 | 点我购买 |
香港BGP 限量款 | 2C | 4G | 30G | 3Mbps | 无限 | 25 元/月 | 点我购买 |
香港BGP(弹性) | 2 – 16C | 4 – 32G | 30 – 400G | 3 – 20Mbps | 无限 | 22 元/月起 | 点我购买 |
香港Mega Two数据中心,三网CN2 GIA优化,实现全国超低延迟。
名称 | CPU | RAM | 硬盘 | 带宽 | 月流量 | 价格 | 购买链接 |
---|---|---|---|---|---|---|---|
香港CN2 GIA 标配版 | 1C | 1G | 20G | 3Mbps | 无限 | 30 元/月 | 点我购买 |
香港CN2 GIA(弹性) | 2 – 32C | 2 – 128G | 40 – 700G | 3 – 30Mbps | 无限 | 48 元/月起 | 点我购买 |
日本VPS
日本服务器介绍
电信去程163,回程CN2,移动联通双程骨干直连,宽带质量优秀。
名称 | CPU | RAM | 硬盘 | 带宽 | 月流量 | 价格 | 购买链接 |
---|---|---|---|---|---|---|---|
日本CN2(弹性) | 1 – 16C | 1 – 16G | 20-200G | 5 – 20Mbps | 不限流量 | 46 元/月起 | 点我购买 |
日本CN2大带宽(弹性) | 1 – 16C | 1 – 16G | 20-200G | 20 – 50Mbps | 500G/月 | 55 元/月起 | 点我购买 |
韩国VPS
韩国服务器介绍
韩国CN2优化线路,大陆访问快速响应,电信CN2
线路,带宽质量优秀
名称 | CPU | RAM | 硬盘 | 带宽 | 月流量 | 价格 | 购买链接 |
---|---|---|---|---|---|---|---|
韩国CN2(弹性) | 1 – 32C | 1 – 128G | 20 – 100G | 3 – 20Mbps | 看需求 | ¥ 35.00 起/ 月 | 点我购买 |
韩国CN2大带宽(弹性) | 1 – 32C | 1 – 128G | 20 – 100G | 20 – 50Mbps | 300G/月起 | 38 元/月起 | 点我购买 |
美国VPS
美国T级防御云服务器介绍
去程普通线路,回程CN2/9929线路,大陆防御值为200G,超过峰值解封快。
名称 | CPU | RAM | 硬盘 | 带宽 | 月流量 | 价格 | 购买链接 |
---|---|---|---|---|---|---|---|
美国T级防御(弹性) | 1 – 16C | 1 – 16G | 20 – 100G | 20 – 300Mbps | 不限流 | 40 元/月起 | 点我购买 |
美国高防(弹性) | 1 – 16C | 1 – 16G | 20 – 200G | 10 – 30Mbps | 不限流 | 58 元/月起 | 点我购买 |
美国高防大带宽(弹性) | 1 – 16G | 1 – 16G | 20 – 200G | 20 – 50Mbps | 500G/月 | 56 元/月起 | 点我购买 |
2)本项目的github
https://github.com/kekingcn/kkFileView
3)本项目官网
https://kkview.cn/zh-cn/index.html
4)参考资料主要是官网
一、Docker环境部署
在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04
docker安装脚本
bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)
docker-compose安装脚本
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
二、创建docker-compose.yml文件
mkdir kkfileview;cd kkfileview #创建一个目录,并进入此目录
vim docker-compose.yml
version: '3.3' # 这是一个Docker Compose文件的版本声明,它表明该文件符合Docker Compose文件格式版本3.3
services:
kkfileview: #服务名,可以自定义
container_name: kkfileview #容器名,可以自定义
ports:
- '8012:8012' # 冒号:左边的8012可以改成任意vps上未使用过的端口,冒号右边是本docker镜像里的端口
environment:
- PUID=0 # 用户ID,在终端输入id可以查看当前用户的id
- PGID=0 # 组ID同上
- TZ=Asia/Shanghai #时区,可以自定义
restart: always #开启自启动其他选项看以下备注
image: zuokaiqi/kkfileview:latest #镜像名一般都是使用的哪个镜像就写哪个镜像。
volumes:
- ./demo:/opt/kkFileView-4.4.0-beta/file/demo # 映射本地目录到容器demo目录
三、执行容器运行命令
docker-compose up -d #运行容器
docker-compose ps #查看是否开启成功
正常启动如下所示
docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------------------------
ywsj_kkfile java -Dfile.encoding=UTF-8 ... Up 0.0.0.0:8012->8012/tcp,:::8012->8012/tcp
飞牛NAS搭建
目录映射说明
四、打开web页面使用
成功以后需要打开自己相应的端口(8012)防火墙就可以web端访问了
http://ip:8012 #打开自己VPS的端口加ip进入web页面
五、绑定域名
绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch
绑定完域名就可以用域名来访问了
六、添加认证信息
默认这个项目是没有认证信息的如果需要的可以看如下方法
可以使用飞牛云上的lucky应用添加
web服务这里添加用户名密码即可
注意事项
使用过程中
可能遇到的问题
官网上基本都有自己可以找下
1.API接口调用见官网
2.配置说明见官网
3.常见问题见官网
Q:怎么把这个项目集成到我的项目里
A:不需要集成,本项目只需要独立部署,向外提供http预览服务(外部系统只需要访问本项目预览接口并传入需要预览文件的url,就可以打开预览页面)
Q:怎么把这个项目放Tomcat里运行
A:不需要放进Tomcat里,编译好的发行包为zip包,直接解压运行一键启动脚本就可以完成部署(需要有java环境)具体部署步骤详见:部署指南
Q:预览并发问题&预览首次打开慢
A:可使用预览转码队列,将需要预览的文件url放入队列中,提前进行转码,本地访问接口为:http://127.0.0.1:8012/addTask?url=http://xxx/test.txt (url参数为需要需要的文件访问地址)
Q:预览乱码
A:乱码问题可能有如下两个原因
字体问题
大部分Linux系统上并没有预装中文字体或字体不全,需要把常用字体拷贝到Linux服务器上,具体操作如下: 下载如下字体包 https://kkview.cn/resource/fonts.zip 文件解压完整拷贝到Linux下的 /usr/share/fonts目录。然后依次执行mkfontscale 、mkfontdir 、fc-cache使字体生效
Q:Linux下启动项目后日志报错:org.artofsolving.jodconverter.office.OfficeException: office process died with exit code 127
A:操作系统缺少libXext.so.6包,请自行下载安装:https://pkgs.org/download/libXext.so.6
Q:启动项目后日志报错:java.lang.IllegalStateException: a process with acceptString ‘socket,host=127.0.0.1,port=8100’ is already running; pid 26468
A:有正在运行的openoffice进程,kill掉相关进程再重新启动
Q:Windows系统下启动报错:Error creating bean with name ‘cacheServiceRocksDBImpl’
A:本项目默认使用内嵌RocksDB存储引擎作缓存,需要以管理员身份运行,或配置使用其他缓存实现,详见:缓存配置
Q:如何水印文本内容动态传值
A:在预览url后面加上参数&watermarkTxt即可
例如:
var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url=' + encodeURIComponent(url) + '&watermarkTxt=' + encodeURIComponent('动态水印'));
Q:使用nginx代理时预览出现异常
A:一般是nginx和kkFileView配置有问题
例如nginx的访问地址为 https://file.keking.cn 想要使用 https://file.keking.cn/preview/来做预览,kkFileView部署在内网192.168.1.233服务器上,需要在nginx中添加反向代理如下:
location /preview {
proxy_pass 192.168.1.233:8012;
}
修改kkFileView的配置文件如下两项
server.servlet.context-path = /preview
base.url = https://file.keking.cn/preview
使用如下地址来访问预览页面
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script>
var url = 'https://file.keking.cn/file/test.txt'; //要预览文件的访问地址
window.open('https://file.keking.cn/preview/onlinePreview?url='+encodeURIComponent(Base64.encode(url)));
Q:使用docker部署时如何指定配置文件中的配置项
A:针对docker运行的用户,所有配置项可以使用设置相应的环境变量来配置
环境变量的KEY为配置文件中每个配置项后${}中的KEY
例如,使用docker运行要指定base.url为http://file.keking.cn,docker运行命令如下
docker run -it -d -p 8012:8012 -e KK_BASE_URL="http://file.keking.cn" keking/kkfileview:v2.2.1
Q:使用内网预览时没有问题,但是使用外网预览有问题
A:一般是公司网络使用的路由器不支持或没开启域内NAT,kkFileView无法通过外网地址下载要预览的文件
例如kkFileView部署在公司192.168.1.233服务器上,本地访问http://192.168.1.233:8012可以正常预览
公司运维把192.168.1.233的8012端口暴露到公网ip或域名(http://xxx.xxx.xxx:8012),公网打首页也正常,但是预览就出错
这种一般是因为公司主路由器不支持或没开启域内NAT 参考资料
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
评论区