大家好,我是 Java陈序员

我们在工作中,经常需要与文件上传下载进行打交道。甚至有时候要实现文件预览功能。

如果是一两种的文件类型,我们或许可以借助一些插件完成工作,那么如果是要适配各式各样的文件类型呢?

今天,给大家介绍一个支持预览多种文件类型的开源项目 —— kkFileView.

项目介绍

kkFileView 是一个基于 SpringBoot 实现文档在线预览的开源项目,基本支持主流办公文档(WordPPTExcelPdf 等)的在线预览。

项目特性:

  • 基于 SpringBoot 实现,开箱即用
  • 提供丰富的 Restful 接口服务
  • 支持 http/https/ftp/文件流等多种预览源
  • 统一的预览服务接口,方便二次开发
  • 支持 Docker 部署

支持多种文件类型,目前已支持:

一个项目打尽所有文件类型的预览功能_文件预览

项目地址:

https://github.com/kekingcn/kkFileView

在线体验:

https://file.kkview.cn/

在线文档:

https://kkfileview.keking.cn/zh-cn/docs/home.html

功能预览

文本预览

文本预览不仅支持预览 .txt,而且 .html.js.xml.json.yaml.java.py.cpp 等也是支持的!

一个项目打尽所有文件类型的预览功能_文件预览_02

图片预览

支持 jpgjpegpnggif 等图片预览,并可以放大、缩小、旋转图片!

一个项目打尽所有文件类型的预览功能_文件预览_03

Pdf 预览

Pdf 预览支持两种格式

图片模式

一个项目打尽所有文件类型的预览功能_文件预览_04

PDF 格式

一个项目打尽所有文件类型的预览功能_SpringBoot_05

Excel 预览

一个项目打尽所有文件类型的预览功能_开源项目_06

Word 预览

Word 预览预览有两种模式:

  • 每页 Word 转为图片预览:Word 文件大,前台加载整个 PPT 过慢
  • 整个 Word 文档转成 PPT,再预览 PPT:内网访问,加载 PPT

一个项目打尽所有文件类型的预览功能_SpringBoot_07

一个项目打尽所有文件类型的预览功能_GitHub_08

PPT 预览

一个项目打尽所有文件类型的预览功能_开源项目_09

多媒体预览

理论上支持所有的视频、音频文件,默认开启的类型:mp3wavmp4flv,可通过配置文件指定多媒体类型

一个项目打尽所有文件类型的预览功能_GitHub_10

压缩包预览

支持 ziprarjartargzip 等压缩包。

可点击压缩包中的文件名,直接预览文件!

一个项目打尽所有文件类型的预览功能_SpringBoot_11

安装使用

环境准备

  • Java: 1.8+
  • LibreOfficeOpenOffice(Windows 下已内置,CentOSUbuntu 下会自动下载安装,MacOS 下需要自行安装)

Docker 安装

拉取镜像:

docker pull keking/kkfileview:4.1.0

启动运行:

docker run -it -p 8012:8012 keking/kkfileview:4.1.0

成功启动后,访问容器 8012 端口 http://127.0.0.1:8012.

或者使用 nginx 进行反向代理:

server {
    listen 80;
    server_name chencoding.top; 

    location / {
        proxy_pass http://localhost:8012;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

nginx 配置成功后,浏览器访问:http://ip:端口 或者 http://域名:端口

最后

推荐的开源项目已经收录到 GitHub 项目,欢迎 Star

https://github.com/chenyl8848/great-open-source-project

或者访问网站,进行在线浏览:

https://chencoding.top:8090/#/

大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!