首页 > 其他分享 >强推!一个项目实现所有文件类型的预览功能!

强推!一个项目实现所有文件类型的预览功能!

时间:2023-11-20 14:35:27浏览次数:37  
标签:强推 预览 支持 Word proxy https PPT 文件类型

大家好,我是 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 等也是支持的!

预览 txt

图片预览

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

预览图片

Pdf 预览

Pdf 预览支持两种格式

图片模式

预览 Pdf —— 图片模式

PDF 格式
预览 Pdf —— PDF 模式

Excel 预览

预览 Excel

Word 预览

Word 预览预览有两种模式:

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

预览 Word —— 图片模式

预览 Word —— PDF 模式

PPT 预览

预览 PPT

多媒体预览

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

预览视频

压缩包预览

支持 ziprarjartargzip 等压缩包。

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

预览压缩包

安装使用

环境准备

  • 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/#/

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

标签:强推,预览,支持,Word,proxy,https,PPT,文件类型
From: https://www.cnblogs.com/codechen8848/p/17843865.html

相关文章

  • linux各目录存放文件类型
    /usr最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:/usr/X11R6存放Xwindow的目录/usr/bin众多的应用程序/usr/sbin超级用户的一些管理程序/usr/doclinux文档/usr/includelinux下开发和编译应用程序所需要的头文件/usr/lib常用的动态链接库和软件包的配置......
  • 记一个漏洞处理,SSH框架上传限制文件类型,以及关于文件上传安全问题的讨论
    -----------------------------------------------------------------------------------------------------------------------------------与同事讨论的文件上传安全问题:1.老项目采用的上传至项目下某个目录的做法是很不安全的,容易被访问到上传文件,应当制定到项目之外的目......
  • 实现多个大文件拖拽上传+大文件分片上传+断点续传+文件预览
    技术关键词前端:@vue/cli-service+element-ui+axios后端:node.js+koa思路分析拖拽上传拖拽上传是利用HTML5新特性实现拖拽上传,详细用法可阅读MDN-drag利用dragover事件(当某物被拖动的对象在另一对象容器范围内拖动时触发此事件)和drop事件(在一个拖动过程中,释放鼠标键时......
  • vue中el-upload结合vuedraggable实现图片的上传、排序、删除以及预览等功能_element u
    <template><div><ulclass="el-upload-listel-upload-list--picture-card"style="display:flex;"><div><!--start:拖拽开始end:拖拽结束imageLists:需要展示图片的数组-->......
  • 如果我有一个项目,我git如何恢复到3个月前的日志,然后再强推到github项目上,但是项目的
       要将Git项目恢复到3个月前的状态,并将最新内容强制推送到GitHub项目上,可以按照以下步骤进行操作:首先,获取项目的提交历史。使用以下命令查看所有的提交记录:bashCopyCodegitlog复制你想要恢复到的目标提交的commithash(提交哈希值)。切换到一个全新的分支......
  • swift怎么切换模拟器和预览?
    swiftui一般都是用预览视图查看效果,其实也是可以用模拟器的,出于某种数据的动态刷新测试,中途用模拟器来查看结果却不想怎么在底部控制台找不到打开预览视图的按钮。找了好几分钟,才突然发现,原来预览图的代码被编辑器自动注释了,重新打开注释即可......
  • vue基于vue-pdf实现pdf预览
    <template><divclass="pdf-container"><divclass="page-tool">文件名称扩展<divclass="page-tool-fixed"v-if="showTool"><spanclass="sc......
  • c# winfrom pdf 预览
    在C#WinForms中预览PDF文件,你可以使用一些第三方库,比如iTextSharp或Ghostscript.NET。下面是一个使用iTextSharp的简单示例:首先,你需要安装iTextSharp库。你可以通过NuGet包管理器来安装。在VisualStudio中,打开Tools->NuGetPackageManager->ManageNuGetPackagesforSolut......
  • nginx文件服务器根据文件类型判断预览还是下载
    location/file{charsetutf-8;alias/usr/share/nginx/html/files;autoindexoff;autoindex_exact_sizeoff;autoindex_localtimeon;add_header'Access-Control-Allow-Origin''*'always;add_header'Acce......
  • 若依框架文件的上传和预览(超简版)
    若依框架文件的上传和预览(超简版)一、上传:1、首先创建一张上传文件的表droptableifexistssys_file_info;createtablesys_file_info(file_idint(11)notnullauto_incrementcomment'文件id',file_namevarchar(50)defa......