web端文件预览必须推荐的神器——Flyfish File Viewer
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
ruoyi-vue-pro文件列表加预览,我把 kkFileView 换成了这个前端组件先说事故。 之前给用户做系统的时候,使用了 kkFileView 来做文件预览。其实用户只是想能预览场景的 Office 文件比如ppt/pptx,xls/slsx,doc/docx、图片等。误以为是要支持很多种格式的,所以当时简单考虑了下就上了 kkFileView,但后面陆续调研了其他的方案,最终补上了 vue-office 分流预览。 基本满足使用吧。 问题点:
但支持的格式是真多。
这个组件是什么路子先澄清一个容易混的点:Flyfish File Viewer 跟 kkFileView 名字像,架构完全相反。 kkFileView 是服务端方案——起一个 Java 服务,文件丢给它,后台用 LibreOffice 转成 pdf 或图片,前端 iframe 嵌它的预览页。Flyfish 反过来,转换发生在用户浏览器里。文件二进制流到前端之后,是 wasm 和 worker 在本地解析渲染的,服务端只管把字节吐出来,不参与转换。 这意味着两件事。好的那件:不用多部署任何东西,没有 LibreOffice,没有转换队列,内网离线环境拷过去就能用。坏的那件:转换的 CPU 开销转嫁到用户电脑上,文件特别大的时候老机器会吃力。我们后台用户都是办公电脑,这个代价能接受。 格式方面官方标的是 25 条渲染链路、208 个扩展名。我没逐个验证,日常碰到的是这些:Office 三件套加 csv/rtf,pdf 和 ofd,常见图片,代码和文本文件(这个意外好用,日志、sql、json 直接看),zip/rar/7z 能展开目录,dwg/dxf 图纸,drawio 和 xmind,eml 邮件,mp4/mp3 直接播。epub、geojson、sqlite 这些偏门的也在支持列表里,但我没实际文件可测。
工具栏自带下载、打印、缩放、文档内搜索,可以在配置里开关。CAD 和 3D 走 wasm,某个格式第一次打开会慢一两秒——wasm 是懒加载的,第二次就快了,这个不是 bug。 kkFileView、vue-office、OnlyOffice不是不用,是看需求满足不满满足,有时候同时使用,但越简单功能越强大的最好。 kkFileView 给一个客户使用大半年了。格式覆盖确实广,但它是另一套要伺候的服务:JVM 内存得给够,LibreOffice 进程偶尔会僵死,转换大文件时后面的请求排队。最难受的是预览页是它自己的 UI,跟芋道的 Element Plus 风格完全两套东西,用户能明显感觉"跳出去了"。后来基本office使用vue-office来预览也还行。 @vue-office 那几个包(docx、excel、pdf 分开装)其实挺轻,纯前端,如果系统里只有 Office 文档,它是最省事的选择。问题是芋道的文件模块是个通用入口,用户传什么控制不了。今天补个 zip,明天补个 eml,每种格式引一个组件、写一套分支,维护的是 N 份预览逻辑。我懒得干这个活。 OnlyOffice 协同编辑强基本也能满足客户,但是集成部署都是活! Flyfish 的定位很窄:一个组件,管"看",不管"编",格式尽量全。恰好跟文件列表的场景对上。 接进 ruoyi-vue-pro 的几个坑跨域,最大的一个芋道的文件 URL 长这样: 后端是 但注意,FileViewer 不吃 URL,它吃 为什么非要走芋道自己的代理接口,而不是直接用 还有一个细节:path 要分段 encode,不能整段 encode,也不能不 encode。芋道自己的单测里就有中文文件名的 case( Vite 插件,漏了会白屏这个插件干的事是把 pdf.worker、CAD 的 wasm、drawio 的脚本这些静态资源拷到 验证方法:构建完看
样式隔离必须开芋道的全局 CSS 很重,el- 系列样式会渗进预览区,表格线、字号全乱。配置里 弹窗关掉要销毁文件列表的预览一般放 Dialog 里。组件销毁时 FileViewer 实例也要跟着销毁(vben 的 Modal 设 permitAll 那条路径,自己掂量
preset 体积
依赖和配置,贴一份挂载就是
不完美的部分大文件要等 Blob 整个下完才开始渲染。两百兆的 zip,用户就盯着 loading 看,这个目前没有好办法,纯前端方案的天花板。kkFileView 那种服务端转码好歹能边转边出页,这是它被换掉之后我唯一怀念的点。 另外 2.2.9 这版,heic 图片在某些老 Edge 上解不出来,直接显示不支持。官方文档 https://doc.file-viewer.app/,格式全表在 guide/formats 那页,接之前建议拿自己的样本文件过一遍。 就这些。有在芋道里接过预览的,评论区聊聊你们用的哪套,kkFileView 的运维坑我估计不是我一个人踩过。 Flyfish File Viewer 2.2.9 / ruoyi-vue-pro infra/file 模块。 阅读原文:点击这里 该文章在 2026/8/24 15:11:09 编辑过 |
关键字查询
相关文章
正在查询... |