kkFileView
kkFileView
kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等
https://kkview.cn/zh-cn/index.html
项目简介
文档在线预览项目解决方案,项目使用流行的spring boot搭建,易上手和部署。万能的文件预览开源项目,基本支持主流文档格式预览
项目特性
- 使用spring boot开发,预览服务搭建部署非常简便
- rest接口提供服务,跨平台特性(java,php,python,go,php,....)都支持,应用接入简单方便
- 支持普通http/https文件下载url、http/https文件下载流url、ftp下载url等多种预览源
- 提供zip,tar.gz发行包,提供一键启动脚本和丰富的配置项,方便部署使用
- 提供Docker镜像发行包,方便在容器环境部署
- 抽象预览服务接口,方便二次开发,非常方便添加其他类型文件预览支持
基于当前良好的架构模式,支持的文件类型在进一步丰富中
目前支持的文件类型如下
- 支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx,xlam, xla 等 Office 办公文档
- 支持 wps, dps, et, ett, wpt 等国产 WPS Office 办公文档
- 支持 odt, ods, ots, odp, otp, six, ott, fodt, fods 等OpenOffice、LibreOffice 办公文档
- 支持 vsd, vsdx 等 Visio 流程图文件
- 支持 wmf, emf 等 Windows 系统图像文件
- 支持 psd 等 Photoshop 软件模型文件
- 支持 pdf ,ofd, rtf 等文档
- 支持 xmind 软件模型文件
- 支持 bpmn 工作流文件
- 支持 eml 邮件文件
- 支持 epub 图书文档
- 支持 obj, 3ds, stl, ply, gltf, glb, off, 3dm, fbx, dae, wrl, 3mf, ifc, brep, step, iges, fcstd, bim 等 3D 模型文件
- 支持 dwg, dxf 等 CAD 模型文件
- 支持 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 等视频格式转码预览
预览展示
1. 文本预览
支持所有类型的文本文档预览, 由于文本文档类型过多,无法全部枚举,默认开启的类型如下
txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd
文本预览效果如下
2. 图片预览
支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像),预览效果如下
3. word文档预览
支持doc,docx文档预览,word预览有两种模式:一种是每页word转为图片预览,另一种是整个word文档转成pdf,再预览pdf。两种模式的适用场景如下
- 图片预览:word文件大,前台加载整个pdf过慢
- pdf预览:内网访问,加载pdf快
图片预览模式预览效果如下
pdf预览模式预览效果如下
4. ppt文档预览
支持ppt,pptx文档预览,和word文档一样,有两种预览模式
图片预览模式预览效果如下
pdf预览模式预览效果如下
5. pdf文档预览
支持pdf文档预览,和word文档一样,有两种预览模式
图片预览模式预览效果如下
pdf预览模式预览效果如下
6. excel文档预览
支持xls,xlsx文档预览,预览效果如下
ps,如碰到excel预览乱码问题,可参考 预览乱码
另xlsx还支持web预览模式(4.3.0版本起默认启用),预览效果如下
7. 压缩文件预览
支持zip,rar,jar,tar,gzip等压缩包,预览效果如下
可点击压缩包中的文件名,直接预览文件,预览效果如下
8. 多媒体文件预览
理论上支持所有的视频、音频文件,由于无法枚举所有文件格式,默认开启的类型如下
mp3,wav,mp4,flv
如有没有未覆盖全面,可通过配置文件指定多媒体类型
视频预览效果如下
音频预览效果如下
9. CAD文档预览
支持CAD dwg文档预览,和word文档一样,有两种预览模式
图片预览模式预览效果如下
pdf预览模式预览效果如下
10. 流程图bpmn文件预览
支持bpmn流程图文件预览,预览效果如下
11. 3D模型文件文件预览
支持 obj, 3ds, stl, ply, gltf, glb, off, 3dm, fbx, dae,
wrl, 3mf, ifc, brep, step, iges, fcstd, bim 等3D模型文件预览,预览效果如下
12. dcm医疗数位影像预览
支持dcm医疗数位影像预览,预览效果如下
13. drawio流程图预览
支持drawio流程图预览,预览效果如下
所有文章
- Jul 5th 2023 4.3.0版本发布
- Apr 18th 2023 4.2.1版本发布
- Apr 13th 2023 4.2.0版本发布
- Dec 14th 2022 4.1.0版本发布
- Jul 6th 2021 4.0.0版本发布
- Jun 17th 2021 3.6.0版本发布
- Mar 19th 2021 3.5.0版本发布
- Jan 28th 2021 3.3.1版本发布
- Dec 27th 2020 3.3.0版本发布
- Aug 12th 2020 2.2.1版本发布
- May 20th 2020 2.2.0版本发布
- Jul 9th,2019 2.1.1版本发布
- Jun 24th,2019 2.1.0版本发布
- May 7th,2019 2.0版本发布
- Jan 31th,2019 年终答疑
- Mar 25th,2018 1.1版本发布
- Mar 16th,2018 安全问题
- Jan 17th,2018 更名kkFileView
- Jan 2nd,2018 首个发行版
支持的文件类型
我们一直在扩展支持的文件类型,不断优化预览的效果,如果您有什么建议,欢迎在kk开源社区留意反馈:https://t.zsxq.com/09ZHSXbsQ。- 支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx, xlam, xla, pages 等 Office 办公文档
- 支持 wps, dps, et, ett, wpt 等国产 WPS Office 办公文档
- 支持 odt, ods, ots, odp, otp, six, ott, fodt, fods 等OpenOffice、LibreOffice 办公文档
- 支持 vsd, vsdx 等 Visio 流程图文件
- 支持 wmf, emf 等 Windows 系统图像文件
- 支持 psd, eps 等 Photoshop 软件模型文件
- 支持 pdf ,ofd, rtf 等文档
- 支持 xmind 软件模型文件
- 支持 bpmn 工作流文件
- 支持 eml 邮件文件
- 支持 epub 图书文档
- 支持 obj, 3ds, stl, ply, gltf, glb, off, 3dm, fbx, dae, wrl, 3mf, ifc, brep, step, iges, fcstd, bim 等 3D 模型文件
- 支持 dwg, dxf, dwf, iges , igs, dwt, dng, ifc, dwfx, stl, cf2, plt 等 CAD 模型文件
- 支持 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 绘图预览
输入下载地址预览
上传本地文件预览
demo/钉钉验证码:678067.eml | 预览删除 |
demo/eFA优化需求.msg | 预览删除 |
demo/H2_AN202207081575994555_1.html | 预览删除 |
demo/2024.docx | 预览删除 |
demo/猴头.glb | 预览删除 |
demo/第九课:LTE功率控制.pdf | 预览删除 |
demo/111.docx | 预览删除 |
demo/20240528-105825.avi | 预览删除 |
demo/po;fkdlj.jpg | 预览删除 |
demo/index.html | 预览删除 |
demo/微信截图_20240228083247.png | 预览删除 |
demo/20240603.xlsx | 预览删除 |
demo/C102_PL.xlsx | 预览删除 |
demo/高水平航空安全保障民航高质量发展.docx | 预览删除 |
demo/tempfile-6337890002185793003.xlsx | 预览删除 |
接入说明
本文档针对前端项目接入 kkFileView 的说明,并假设 kkFileView 的服务地址为:http://127.0.0.1:8012。var
url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(base64Encode(url)));
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)));
var
url = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(url)));
var
originUrl = 'ftp://127.0.0.1/file/test.txt'; //要预览文件的访问地址
var
previewUrl = originUrl +
'?ftp.username=xx&ftp.password=xx&ftp.control.encoding=xx';
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(previewUrl)));
版本发布记录
2023年07月10日,v4.4.0版本迭代开启
2. 更新xlsx前端解析组件,新增支持打印功能,加速解析速度
3. 修复 forceUpdatedCache 属性设置,但是本地缓存文件不更新缺陷
4. 配置文件新增启用 GZIP压缩
5. 升级CAD组件,CAD格式新增支持 转换成svg tif 格式 新增 超时结束 新增线程管理
6. 删除功能 新增验证码方法
7. office 功能调整 支持批注 转换页码限制 生成水印等等
8.新增xbrl格式
9.修复PDF解密加密文件 转换成功后台报错问题
10.升级markdown组件 修复markdown被转义问题
11.升级dcm 解析组件
12.升级PDF.JS解析组件 新增:控制签名/绘图/插图控制方法
13.更换视频播放插件为ckplayer
14.tif解析更加智能化 支持被修改的图片格式
15.修复bpmn不支持跨域的问题
16.修复压缩包二级反代特殊符号错误问题
17.首页新增 搜索 定位页码 定义显示多少内容
18.修复video跨域配置导致视频无法预览问题
19.针对大小文本文件检测字符编码的正确率;处理并发隐患
20.修复txt文本类 分页二次加载问题
21.新增csv格式前端解析
22.重构下载文件的代码,新增通用的文件服务器认证访问的设计
23.更新bootstrap组件 并精简掉不需要的文件
24.新增arm64下的dockerfile
25.更新epub版本,优化epub显示效果,修复epub 跨域报错问题
26.修复drawio缺少base64组件的问题
27.解决定时清除缓存时,对于多媒体类型文件,只删除了磁盘缓存文件
28.自动检测已安装Office组件增加LibreOffice7.5 & 7.6 版本默认路径
29.修改drawio默认为预览模式
30.新增office转换超时属性功能
31.新增预览文件 host 黑名单机制
32.修复 url特殊符号问题
33.修复压缩包穿越漏洞BUG
34.其他功能优化及已知问题修复
2023年07月04日,v4.3.0版本
2. 新增drawio绘图预览
3. 新增开启缓存的情况下重新生成的命令 &forceUpdatedCache=true
4. 新增dwg CAD文件预览
5. 新增PDF文件支持密码功能
6. 修复反代情况下压缩包获取路径错误
7. 新增PDF文件生成图片的dpi自定义配置
8. 修复预览图片的url中如果包含&会导致.click报错
9. 新增删除转换后OFFICE、CAD、TIFF、压缩包源文件配置 默认开启 节约磁盘空间
10. 调整生成的PDF文件 文件名称添加文件后缀 防止生成同名文件
11. 新增pages格式支持,调整SQL文件预览方式
12. OFD修复部分已知Bug,提高OFD兼容性处理。
13. 新增前端解析xlsx方法。
14. OFD修复部分文字未显示的问题,完善OFD兼容性处理
15. 美化TXT文本 分页框的显示
16. 修复预览压缩包时,如果点击的是文件目录(树节点),页面会报错
17. 升级Linux、Docker版内置office为LibreOffice-7.5.3版本 18. 升级Windows内置office为LibreOffice-7.5.3 Portable版本
19. 新增pages,eps, iges , igs, dwt, dng, ifc, dwfx, stl, cf2, plt等格式支持
20. 其他功能优化及已知问题修复
2023年04月18日,v4.2.1版本
2023年04月13日,v4.2.0版本
2. 新增加密的 Office 文件预览支持
3. 新增加密的 zip、rar 等压缩包文件预览支持
4. 新增 xmind 软件模型文件预览支持
5. 新增 bpmn 工作流模型文件预览支持
6. 新增 eml 邮件文件预览支持
7. 新增 epub 电子书文件预览支持
8. 新增 dotm,ett,xlt,xltm,wpt,dot,xlam,xla,dotx 等格式的办公文档预览支持
9. 新增 obj, 3ds, stl, ply, gltf, glb, off, 3dm, fbx, dae, wrl, 3mf, ifc, brep, step, iges, fcstd, bim 等 3D 模型文件预览支持
10. 新增可配置限制高风险文件上传的功能,比如 exe 文件
11. 新增可配置站点的备案信息
12. 新增演示站点删除文件需要密码的功能
13. 文本文档预览加入缓存
14. 美化 404、500 报错页
15. 优化发票等 ofd 文件预览的印证渲染兼容性
16. 移除 office-plugin 模块, 使用新版 jodconverter组件
17. 优化 Excel 文件的预览效果
18. 优化 CAD 文件的预览效果
19. 更新 xstream 、junrar、pdfbox 等依赖的版本
20. 更新 TIF 文件转换 PDF 的插件,添加转换缓存
21. 优化演示页 UI 部署
22. 压缩包文件预览支持目录
23. 修复部分接口 XSS 问题
24. 修复控制台打印的演示地址不跟着 content-path 配置走的问题
25. 修复 ofd 文件预览跨域问题
26. 修复内部自签证书 https 协议 url 文件无法下载的问题
27. 修复特殊符号的文件无法删除的问题
28. 修复 PDF 转图片,内存无法回收导致的 OOM
29. 修复 xlsx7.4 以上版本文件预览乱码的问题
30. 修复 TrustHostFilter 未拦截跨域接口的问题,这是一个安全问题,有使用到 TrustHost 功能的务必升级
31. 修复压缩包文件预览在 Linux 系统下文件名乱码的问题
32. 修复 ofd 文件预览页码只能显示 10 页的问题
2022年12月14日,v4.1.0版本
2. tif图片预览兼容多页tif的pdf转换、jpg转换,以及jpg在线多页预览功能 @zhangzhen1979
3. 优化docker构建方案,使用分层构建方式 @yl-yue
4. 实现基于userToken缓存加密文件 @yl-yue
5. 实现加密word、ppt、excel文件预览 @yl-yue
6. Linux & Docker镜像升级LibreOffice 7.3
7. 更新OFD预览组件、更新tif预览组件、更新PPT水印支持
8. 大量其他升级优化 & 已知问题修复
感谢 @yl-yue @wsd7747 @zhangzhen1979 @tomhusky @shenghuadun @kischn.sun 的代码贡献
2021年7月6日,v4.0.0版本
2. 修复压缩文件目录穿越漏洞
3. 修复PPT预览使用PDF模式无效
4. 修复PPT图片预览模式前端显示异常
5. 新增功能:首页文件上传功能可通过配置实时开启或禁用
6. 优化增加Office进程关闭日志
7. 优化Windows环境下,查找Office组件逻辑(内置的LibreOffice优先)
8. 优化启动Office进程改同步执行
2021年06月17日,v3.6.0版本
1. 新增 ofd 类型文件预览支持,ofd 是国产的类似 pdf 格式的文件
2. 新增了 ffmpeg 视频文件转码预览支持,打开转码功能后,理论上支持所有主流视频的预览,如 rm、rmvb、flv 等
3. 美化了 ppt、pptx 类型文件预览效果,比之前版本好看太多
4. 更新了 pdfbox、xstream、common-io 等依赖的版本
2021年04月06日,v3.5.1版本
1. 修复 tif、tiff 文件预览初始内存太小预览失败的问题
2. 修复PDF预览模式跨域问题
2021年03月17日,v3.5.0版本
1. 新增 office-plugin 转换进程、任务超时可配置
2. 更新 spring-boot 到最新的 v2.4.2 版本
3. 新增 tiff 、tif 图像文件格式预览支持
4. 新增依赖 highlightjs 代码文件预览高亮支持
5. 新增 wps 文档预览支持
6. 新增 stars 增长趋势图
7. 新增启动完成,打印启动耗时、演示页访问地址
8. 新增 kkFIleView 的 banner 信息
9. 优化启动脚本
10. 优化项目结构、优化 maven 结构
11. 移除多余的 repositories 配置,移除针对 tomcat 的配置
12. 优化下载文件 io 操作
13. 修复:优化项目目录结构之后,windows下启动报错“找不到office组件”
14. 修复:jodd.io.NetUtil.downloadFile下载大于16M文件报错问题
2021年1月28日,v3.3.1版本
1. 引入galimatias,解决不规范文件名导致文件下载异常
2. 更新index接入演示界面UI风格
3. 更新markdown文件预览UI风格
4. 更新XML文件预览UI风格,调整类文本预览架构,更方便扩展
5. 更新simTxT文件预览UI风格
6. 调整多图连续预览上下翻图的UI
7. 采用apache-common-io包简化所有的文件下载io操作
8. XML文件预览支持切换纯文本模式
9. 增强url base64解码失败时的提示信息
10. 修复导包错误以及图片预览 bug
11. 修复发行包运行时找不到日志目录的问题
12. 修复压缩包内多图连续预览的bug
13. 修复大小写文件类型后缀没通用匹配的问题
14. 指定Base64转码采用Apache Commons-code中的实现,修复base64部分jdk版本下出现的异常
15. 修复类文本类型HTML文件预览的bug
16. 修复:dwg文件预览时无法在jpg和pdf两种类型之间切换
17. escaping of dangerous characters to prevent reflected xss
18. 修复重复编码导致文档转图片预览失败的问题&编码规范
2020年12月27日,v3.3.0版本
1. 架构模块调整,大量的代码重构,代码质量提升N个等级,欢迎品鉴
2. 增强XML文件预览效果,新增XML文档数结构预览
3. 新增markdown文件预览支持,预览支持md渲染和源文本切换支持
4. 切换底层web server为jetty,解决这个issue:#issues/168
5. 引入cpdetector,解决文件编码识别问题
6. url采用base64+urlencode双编码,彻底解决各种奇葩文件名预览问题
7. 新增配置项office.preview.switch.disabled,控制offic文件预览切换开关
8. 优化文本类型文件预览逻辑,采用Base64传输内容,避免预览时再次请求文件内容
9. office预览图片模式禁用图片放大效果,达到图片和pdf预览效果一致的体验
10. 直接代码静态设置pdfbox兼容低版本jdk,在IDEA中运行也不会有警告提示
11. 移除guava、hutool等非必须的工具包,减少代码体积
12. Office组件加载异步化,提速应用启动速度最快到5秒内
13. 合理设置预览消费队列的线程数
14. 修复压缩包里文件再次预览失败的bug
15. 修复图片预览的bug
2020年08月12日,v2.2.1版本
2. 修复PDF预览出现文字缺失异常,升级pdf.js组件
3. docker镜像底层使用ubuntu,镜像体积更小、构建更快
4. 预览接口同时支持get和post请求
5. 修复上传到demo中的压缩文件预览异常
2020年05月20日,v2.2.0版本
2. 新增支持CAD文件预览
3. 新增base.url配置,支持使用nginx反向代理和使用context-path
4. 支持所有配置项支持从环境变量里读取,方便Docker镜像部署和集群中大规模使用
5. 支持配置限信任站点(只能预览来自信任点的文件源),保护预览服务不被滥用
6. 支持配置自定义缓存清理时间(cron表达式)
7. 全部能识别的纯文本直接预览,不用再转跳下载,如.md .java .py等
8. 支持配置限制转换后的PDF文件下载
9. 优化maven打包配置,解决 .sh 脚本可能出现换行符问题
10. 将前端所有CDN依赖放到本地,方便没有外网连接的用户使用
11. 首页评论服务由搜狐畅言切换到Gitalk
12. 修复url中包含特殊字符可能会引起的预览异常
13. 修复转换文件队列addTask异常
14. 修复其他已经问题
15. 官网建设:https://kkview.cn
16. 官方Docker镜像仓库建设:https://hub.docker.com/r/keking/kkfileview
2019年06月20日
2. 支持http/https下载流url文件预览
3. 支持FTP url文件预览
4. 加入Docker构建
2019年04月08日
2. 打包方式提供zip和tar.gz包,并提供一键启动脚本
2018年01月19日
2. 新增addTask文件转换入队接口
3. 采用redis队列,支持kkFIleView接口和异构系统入队两种方式
2018年01月15日
2018年01月12日
2. 支持压缩包内图片轮番预览
2018年01月02日
2. 修复项目模块依赖引入不到的问题
3. 新增spring boot profile,支持多环境配置
4. 引入pdf.js预览doc等文件,支持doc标题生成pdf预览菜单,支持手机端预览
2017年12月12日
2. 项目github开源:https://github.com/kekingcn/kkFileView
JavaScript - 快速实现浏览器在线预览
附上网址:kkFileView
1. 选择部署指南,点击码云发行版本链接
2. 下载发行版
3. 双击执行有Windows和Linux,根据自己使用的系统来下载
4.浏览器访问本机8012端口 http://127.0.0.1:8012 即可看到项目演示用首页
5. 项目接入使用,js
//要预览文件的访问地址
var url = 'http://127.0.0.1:8080/file/test.txt';
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(url));
注:每次使用前启动kkFileView即可,地址可为服务器存放地址
举例说明:
var url = 'http://192.168.xxx.xxx:8080/file/test.txt';
window.open('http://192.168.xxx.xxx:8012/onlinePreview?url='+encodeURIComponent(url));
如有更多需求请查看详细使用说明:详细指南,感谢kkfileview,拜拜~
学问:纸上得来终觉浅,绝知此事要躬行
为事:工欲善其事,必先利其器。
态度:道阻且长,行则将至;行而不辍,未来可期
.....................................................................
------- 桃之夭夭,灼灼其华。之子于归,宜其室家。 ---------------
------- 桃之夭夭,有蕡其实。之子于归,宜其家室。 ---------------
------- 桃之夭夭,其叶蓁蓁。之子于归,宜其家人。 ---------------
=====================================================================
* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。 * @author Alan -liu * @Email no008@foxmail.com
转载请标注出处! ✧*꧁一品堂.技术学习笔记꧂*✧. ---> https://www.cnblogs.com/ios9/